先把rm去掉,用echo 打印 ls -lthr | head -2 |grep -v 'total' 的结果,看看第一次是不是输出了2个目录,打出来看,没问题了再换rm
ls -lthr | grep -v 'total' | head -n 1
应该是这样?大佬好像说过最后一个是获取列表中第一行来着......
rm -rf `ls -thr | head -1`先把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
rm -rf `ls -thr | head -1`这样可以,简单又实用,执行后正确删除了第一个文件。
***********************************************************
#!/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`。


中文 
***********************************************************
#!/bin/sh
for i in `ls -lthr | head -2 |grep -v 'total'`
do
rm -rf $i
done;
*************************************************************
写这个脚本的本意是,按文件修改时间排序,并删除最早的一个文件夹。结果,不知哪里有错误,每次执行时第一次会删除多个文件,继续执行又是正常的。具体可以参考我的截图,麻烦高手给个提示,谢谢!