繁体   English   中英

扩展名删除文件的最佳方法是什么?

[英]What the best way to delete files by extension?

我正在寻找按扩展名从目录删除文件的最佳方法。 我计划按日期进行。 但是现在,我正在测试它的工作方式。 这个:

dir=/tmp/backup/

mask="jpeg jpg png gif bmp pdf"

for i in $mask; do
find $dir -name "*.$i" -type f -delete
done

或这个 ?

find $dir \( -name "*.jpeg" -o -name "*.jpg" -o -name "*.png" \
                 -o -name "*.gif" -o -name "*.bmp" -o -name "*.pdf" \) -type f -delete

我想用最少的机器和操作系统资源来做。 也许您知道其他方法。 因为我将删除一岁的文件。 它可以称为滞后。 谢谢。

您可以使用:

# to ensure it doesn't return *.jpg if there is no .jpg file
shopt -s nullglob

# list all matching extension filea
echo *.{jpeg,jpg,png,gif,bmp,pdf}

当您对输出感到满意时,只需用rm代替echo


但是,如果要使用变量,则将所有扩展名存储在变量中,然后将其与find命令一起使用:

mask="jpeg jpg png gif bmp pdf"

find . -type f -regextype posix-extended -regex ".*\.("${mask// /|}")"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM