有人能给我指点迷津吗?我有 2GB 的图片,包括 3 种类型。例如:
- 拇指-12345.jpg
- 弹出-12345.jpg
- 12345.jpg
是否有一个快速脚本/命令可以运行,以删除名称中不包含“thumb”或“popup”的所有文件。基本上 - 我只需要删除“12345.jpg”
对此还很陌生,任何帮助都将不胜感激!谢谢
答案1
在下面的所有代码片段中,运行命令以检查它显示的文件是否确实是您要删除的文件。然后通过替换echo
为rm
或替换-print
为来执行删除-delete
如果所有文件都在同一个目录中,则可以删除名称以数字开头的文件。
echo [0-9]*.jpg
如果您的文件位于目录层次结构中,请使用find
。
find . -name '[0-9]*.jpg' -print
如果您特意想匹配popup
并且thumb
没有其他前缀:
find . -name '*.jpg' \( -name 'popup-*' -o -name 'thumb-*' -o -print \)
在 bash ≥4.0 或 zsh 中,有一种更简单的方法来遍历子目录,只要您不遇到命令行长度限制。在 bash 中,首先运行shopt -s globstar
。然后:
echo **/[0-9]*.jpg