如何使用布尔运算符 AND 选择目录中的文件

如何使用布尔运算符 AND 选择目录中的文件

我想选择(查找/grep/ls)目录中以某些单词开头并以某个扩展名结尾的某些文件。例子:

  • bluebelt_hans_hoff.jpg
  • bluebelt_hans_hoff.JPEG
  • bluebelt_peter_gort.jpg
  • bluebelt_peter_gort.JPEG

我只想要以“bluebelt”开头且仅以“.jpg”扩展名(而不是 JPEG 扩展名)结尾的文件。如何在命令行上执行此操作?

答案1

如果您只想列出终端中的文件,请使用:

ls -d bluebelt*.jpg

如果您想对这些文件执行某些操作,请使用:

for file in bluebelt*.jpg; do
    your_command "$file"
done

答案2

find /dir/with/yor/files -type f -iname 'bluebelt*.jpg'

与驱动相比,此方法的优点ls在于,此方法仅在行为可能ls出乎意料时才查找文件。假设您有一个名为 bluebelt1.jpg 的目录,那么该ls实用程序将输出该目录中包含的所有文件。

我认为这个变体有两件事。 (1) 搜索时不区分大小写。如果您不想指定-name. (2) 递归查找。如果您不想,可以使用-maxdepth.请参阅man find说明。

相关内容