Chinaunix首页 | 论坛 | 博客
  • 博客访问: 708169
  • 博文数量: 143
  • 博客积分: 1554
  • 博客等级: 上尉
  • 技术积分: 1767
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-10 11:50
文章分类

全部博文(143)

文章存档

2017年(2)

2016年(5)

2015年(16)

2014年(25)

2013年(27)

2012年(16)

2011年(52)

分类:

2011-07-13 10:32:26

当前目录有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)}'
 
 
阅读(901) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~