删除具有特定名称的文件

wil*_*wen 0 linux command-line-interface

有人可以引导我朝着正确的方向前进。我有 2GB 的图像,其中包括 3 种类型。例如:

  • 拇指-12345.jpg
  • popup-12345.jpg
  • 12345.jpg

是否有我可以运行的快速脚本/命令来删除所有名称中没有“thumb”或“popup”的文件。基本上 - 我只需要删除'12345.jpg'

对此很陌生,任何帮助将不胜感激!干杯

Gil*_*il' 5

在下面的所有片段中,运行命令以检查它显示的文件是否真的是您要删除的文件。然后通过替换执行删除echorm-print-delete

如果所有文件都在同一目录中,则可以删除名称以数字开头的文件。

echo [0-9]*.jpg
Run Code Online (Sandbox Code Playgroud)

如果您的文件位于目录层次结构中,请使用find.

find . -name '[0-9]*.jpg' -print
Run Code Online (Sandbox Code Playgroud)

如果你特别想匹配popup,并thumb没有其他的前缀:

find . -name '*.jpg' \( -name 'popup-*' -o -name 'thumb-*' -o -print \)
Run Code Online (Sandbox Code Playgroud)

在 bash ?4.0 或 zsh 中,只要不遇到命令行长度限制,就有一种更简单的方法来遍历子目录。在 bash 中,首先运行shopt -s globstar. 然后:

echo **/[0-9]*.jpg
Run Code Online (Sandbox Code Playgroud)