Chinaunix首页 | 论坛 | 博客
  • 博客访问: 70755
  • 博文数量: 22
  • 博客积分: 300
  • 博客等级: 二等列兵
  • 技术积分: 167
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-03 22:28
文章分类

全部博文(22)

文章存档

2011年(22)

我的朋友

分类:

2011-06-26 20:26:49

当前目录有N多个文件,需要按从小到大排序,然后改名成 1...N.
解法如下:(整理来自于论坛
 
方法一
[root@squid mkdir]# ls -lrS
total 24
-rw-r--r-- 1 root root  7 Jun  1 01:19 test1.txt
-rw-r--r-- 1 root root  8 Jun  1 01:20 test2.txt
-rw-r--r-- 1 root root  9 Jun  1 01:21 test3.txt
-rw-r--r-- 1 root root 10 Jun  1 01:21 test4.txt
-rw-r--r-- 1 root root 11 Jun  1 01:21 test5.txt
-rw-r--r-- 1 root root 12 Jun  1 01:22 test6.txt
 
[root@squid mkdir]# ls -lrS|grep -v total|awk 'i+=1{print "mv " $NF" " i}'|sh
[root@squid mkdir]# ll
total 24
-rw-r--r-- 1 root root  7 Jun  1 01:19 1
-rw-r--r-- 1 root root  8 Jun  1 01:20 2
-rw-r--r-- 1 root root  9 Jun  1 01:21 3
-rw-r--r-- 1 root root 10 Jun  1 01:21 4
-rw-r--r-- 1 root root 11 Jun  1 01:21 5
-rw-r--r-- 1 root root 12 Jun  1 01:22 6
 
方法二:
 
[root@squid mkdir]# ls -Sr | { i=1;while read f;do mv -f "$f" $i;let i++;done;}
[root@squid mkdir]# ls -Srl
total 24
-rw-r--r-- 1 root root  7 Jun  1 01:27 1
-rw-r--r-- 1 root root  8 Jun  1 01:27 2
-rw-r--r-- 1 root root  9 Jun  1 01:27 3
-rw-r--r-- 1 root root 10 Jun  1 01:27 4
-rw-r--r-- 1 root root 11 Jun  1 01:27 5
-rw-r--r-- 1 root root 12 Jun  1 01:27 6
 
方法三:
[root@squid mkdir]# ls -lSr|sed 1d|awk '{print "mv "$NF,NR}'|sh
 
方法四:(考虑文件名中包含空格的处理
[root@squid mkdir]# ls -lSr *.* |awk '{printf "mv \""; for(i=9;i
 
方法五:
 
[root@squid mkdir]# ls -l | sort -n -k5|awk '{system("mv "$9" "NR-1"")}'|sh
 
方法六:(最精简)
 
[root@squid mkdir]# ls -Sr|awk '{system("mv "$0" "NR)}'
 
 
阅读(1594) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~