我在UNIX的一个目录下有几百个PDF。PDF的名称非常长(约60个字符)。
当我尝试使用以下命令一起删除所有PDF时:
rm -f *.pdf
我收到以下错误:
/bin/rm: cannot execute [Argument list too long]
此错误的解决方案是什么?mv和cp命令是否也会出现此错误?如果是,如何解决这些命令?
我在UNIX的一个目录下有几百个PDF。PDF的名称非常长(约60个字符)。
当我尝试使用以下命令一起删除所有PDF时:
rm -f *.pdf
我收到以下错误:
/bin/rm: cannot execute [Argument list too long]
此错误的解决方案是什么?mv和cp命令是否也会出现此错误?如果是,如何解决这些命令?
当前回答
一个更短更可靠的呢?
for i in **/*.pdf; do rm "$i"; done
其他回答
查找具有-delete操作:
find . -maxdepth 1 -name '*.pdf' -delete
或者您可以尝试:
find . -name '*.pdf' -exec rm -f {} \;
使用GNU并行(sudo apt install parallel)非常简单
它以多线程方式运行命令,其中“{}”是传递的参数
E.g.
ls/tmp/myfiles*|并行“rm{}”
对于这个问题,下面的选项似乎很简单。我从其他线程获得了这些信息,但它对我有所帮助。
for file in /usr/op/data/Software/temp/application/openpages-storage/*; do
cp "$file" /opt/sw/op-storage/
done
只需运行上面的一个命令,它就会完成任务。
如果你想删除30/90天以上(+)或30/90天以下(-)的文件/文件夹,可以使用以下ex命令
例如:对于删除90天文件/文件夹后的90天不包括上述内容,这意味着91、92……100天
find <path> -type f -mtime +90 -exec rm -rf {} \;
例如:对于您想要删除的最近30天的文件,请使用以下命令(-)
find <path> -type f -mtime -30 -exec rm -rf {} \;
如果你想保存文件超过2天
find <path> -type f -mtime +2 -exec gzip {} \;
如果您只想查看过去一个月的文件/文件夹。前任:
find <path> -type f -mtime -30 -exec ls -lrt {} \;
30天以上,然后列出文件/文件夹前任:
find <path> -type f -mtime +30 -exec ls -lrt {} \;
find /opt/app/logs -type f -mtime +30 -exec ls -lrt {} \;