我想选择(查找/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
说明。