获取具有两个扩展名的文件列表,如 deb|rpm|txt

获取具有两个扩展名的文件列表,如 deb|rpm|txt

我想每小时从我的 Ubuntu 机器上的文件夹*.(deb|rpm)中删除文件。Downloads

我的 crontab 上有这个

* */1 * * * cd /home/alexalannunes/Downloads && ls *.deb > log.txt && rm  *.deb

因为我想要记录哪些文件已被删除。

但这一行仅删除*.deb.我想删除文件(.deb|.rmp|.other_file)

这是可能的?

我尝试在谷歌中搜索,但没有找到任何东西

谢谢!

答案1

您可以根据需要指定任意多个扩展名,只需单独列出它们即可。例如:

* */1 * * * cd /home/alexalannunes/Downloads && ls *.deb *.rpm > log.txt && rm  *.deb *.rpm

答案2

如果 crontab 运行所在的 shell 支持大括号扩展,则可以通过使用大括号扩展来给出多个扩展:

*.{rpm,deb,other_file}

否则只是链接多个扩展。

*.rpm *.deb

另外,您不需要单独的ls,rm具有详细输出,-v并且您应该添加-f以忽略不存在的文件和参数,并且从不提示。

* */1 * * * rm -fv /home/alexalannunes/Downloads/*.{deb,rpm} > log.txt

或者

* */1 * * * rm -fv /home/alexalannunes/Downloads/*.deb /home/alexalannunes/Downloads/*.rpm > log.txt

相关内容