例如,我有一个文件夹new_folder
,并且该文件夹中有很多文件夹和文件。我想列出其文件名中包含math
的所有文件。因此,maths.txt
,text.mathabc
之类的文件将满足要求,并且这些文件可能位于new_folder
的某些子文件夹中。我可以在new_folder
下作为当前目录使用命令来执行此操作吗?
答案 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"
或者您可以使用查找