[Topic DIscussion] 高手帮我看看这个脚本
Tofloor
poster avatar
laxijin
deepin
2021-03-09 07:54
Author

***********************************************************

#!/bin/sh

for i in `ls -lthr | head -2 |grep -v 'total'`

do

rm -rf  $i

done;

*************************************************************

写这个脚本的本意是,按文件修改时间排序,并删除最早的一个文件夹。结果,不知哪里有错误,每次执行时第一次会删除多个文件,继续执行又是正常的。具体可以参考我的截图,麻烦高手给个提示,谢谢!

Reply Favorite View the author
All Replies
xinyouhui
deepin
2021-03-09 09:11
#1

先把rm去掉,用echo 打印 ls -lthr | head -2 |grep -v 'total'  的结果,看看第一次是不是输出了2个目录,打出来看,没问题了再换rm

Reply View the author
忘记、过去
deepin
2021-03-09 09:18
#2

ls -lthr | grep -v 'total' | head -n 1

 

应该是这样?大佬好像说过最后一个是获取列表中第一行来着......

Reply View the author
sinux
deepin
2021-03-10 05:41
#3
rm -rf `ls -thr | head -1`
Reply View the author
laxijin
deepin
2021-03-10 06:24
#4
xinyouhui

先把rm去掉,用echo 打印 ls -lthr | head -2 |grep -v 'total'  的结果,看看第一次是不是输出了2个目录,打出来看,没问题了再换rm

回显如下,有意思的是,昨天8号第一次会删除1 2 8,今天删除1 2 9.

总用量

40K

drwxr-xr-x 2 laxijin laxijin 4.0K 3月9 21:58 1

drwxr-xr-x 2 laxijin laxijin 4.0K 3月9 21:58 2

drwxr-xr-x 2 laxijin laxijin 4.0K 3月9 21:58 3

drwxr-xr-x 2 laxijin laxijin 4.0K 3月9 21:58 4

drwxr-xr-x 2 laxijin laxijin 4.0K 3月9 21:58 5

drwxr-xr-x 2 laxijin laxijin 4.0K 3月9 21:58 6

drwxr-xr-x 2 laxijin laxijin 4.0K 3月9 21:58 7

drwxr-xr-x 2 laxijin laxijin 4.0K 3月9 21:58 8

drwxr-xr-x 2 laxijin laxijin 4.0K 3月9 21:58 9

drwxr-xr-x 2 laxijin laxijin 4.0K 3月9 21:58 10

Reply View the author
laxijin
deepin
2021-03-10 06:27
#5
sinux
rm -rf `ls -thr | head -1`

这样可以,简单又实用,执行后正确删除了第一个文件。

Reply View the author
laxijin
deepin
2021-03-10 06:36
#6

***********************************************************

#!/bin/sh

for i in `ls -lthr | head -2 |grep -v 'total'`

do

rm -rf  $i

done;

*************************************************************

把ls -lthr改为ls-thr就可以了。

 

感谢sinux的rm -rf `ls -thr | head -1`。

Reply View the author