我需要删除位于特定文件夹中的大量文件(wc
命令正在2392934
附近检索)。该文件夹包含 2015 年和 2016 年的文件。我只想删除 2015 年的文件,为此我创建了以下脚本:
echo 'going to given path'
cd /usr/local/nagios/var/spool/xidpe/
pwd
b=$(ls -lrt | grep '2015' | awk '{print $9}')
echo 'listen tail outcome'
echo 'going to del'
rm -rf $b
exit
但它返回此错误消息:
./test.sh: line 10: /bin/rm: Argument list too long
我也尝试过xargs
:
b=$(ls -lrt | xargs '2016' | awk '{print $9}')
但它返回此错误消息:
xargs: 2016: No such file or directory
是否需要对我的脚本进行任何更改或通过任何其他方式删除这些文件(仅适用于 2015 年)?
最佳答案
如果年份出现在文件名中:
find/usr/local/nagios/var/spool/xidpe/-type f -name '*2015*' -delete
要删除一年前创建的文件:
查找/usr/local/nagios/var/spool/xidpe/-type f -ctime +365 -delete
关于linux - 需要删除大量文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39485691/