在多个文件夹名称中查找文件

Aar*_*ron 60 bash find regular-expression

我正在尝试列出、和中的所有文件dir1,这些文件可能位于我使用该命令的子目录中的任何位置。我尝试了以下但没有成功:dir2dir3dir4cwdfind

find . -type f -regextype posix-egrep -regex 'dir1/.+|dir2/.+|dir3/.+|dir4/.+'
Run Code Online (Sandbox Code Playgroud)

我也试过posix-extended了。如何列出这些文件?

har*_*kat 80

如果你要搜索三个文件夹命名foobarbaz所有的*.py文件,请使用以下命令:

find foo bar baz -name "*.py"

所以如果你想显示dir1 dir2 dir3使用中的文件find dir1 dir2 dir3 -type f

尝试这个 find . \( -name "dir1" -o -name "dir2" \) -exec ls '{}' \;


小智 15

最好使用 -path 指令:

find .  \( -type f -and -path '*/dir1/*' -or -path '*/dir2/*' -or -path '*/dir3/*' -or -path '*/dir4/*' \)
Run Code Online (Sandbox Code Playgroud)

这意味着:在当前目录下查找路径中包含 'dir1' 或 'dir2' 或 'dir3' 或 'dir4' 的所有文件。