批量按照文件大小排序并修改文件名

当前目录有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<NF;i++) printf $i FS; print $NF"\" "++j}' |sh
 
方法五:
 
[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)}'


转载于:https://www.cnblogs.com/johnliu/archive/2011/06/26/2090815.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值