如何在Mac上列出文件夹中具有特定字符串的所有文件?

时间:2018-06-24 03:14:31

标签: bash macos shell unix command-line

例如,我有一个文件夹new_folder,并且该文件夹中有很多文件夹和文件。我想列出其文件名中包含math的所有文件。因此,maths.txttext.mathabc之类的文件将满足要求,并且这些文件可能位于new_folder的某些子文件夹中。我可以在new_folder下作为当前目录使用命令来执行此操作吗?

3 个答案:

答案 0 :(得分:3)

find可能是您的朋友在这里。

find . -iname "*math*" -type f -ls

这应该在当前文件夹(“。”)和所有子文件夹中搜索名称中包含字符串“ math”的文件(“ -type f”),不区分大小写。它将最终打印出找到的文件的ls -l样式列表。

答案 1 :(得分:1)

这取决于您实际上是否在新目录中(例如,是否使用cd移到了新目录),以及是否只列出它们或对它们进行处理。如果您在目录中,并且只想列出它们,请使用:

ls *math*

如果您不在目录中,则需要指定从您到新文件夹的路径,例如:

ls new_folder/*math*

请注意,这将列出每个文件的整个路径,而不仅仅是文件名。

如果您想对他们做某事,请不要使用ls。如果该命令可以直接对一堆文件进行操作,请直接使用该模式,如下所示:

dosomethingwith *math*    # If you're in the directory
dosomethingwith new_folder/*math*    # If not

如果您需要一次执行一些需要文件的操作,请进行循环:

for file in *math*; do    # Or new_folder/*math* if not in the directory
    dosomethingwith "$file"
done

答案 2 :(得分:0)

我认为您应该使用grep

ls -1 | grep "math"

或者您可以使用查找