gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 11:41:36 28 4
gpt4 key购买 nike

我正在寻找通过扩展名从目录中删除文件的最佳方法。我计划按日期完成。但是现在,我正在测试它是如何工作的。这:

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}

当您对输出满意时,只需将 echo 替换为 rm


然而,如果你想使用一个变量,然后将所有扩展存储在一个变量中,然后像这样使用 find 命令:

mask="jpeg jpg png gif bmp pdf"

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

关于linux - 按扩展名删除文件的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44570230/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com