在路径中的任意位置查找具有特定文件夹名称的文件
Find files with a specific folder name anywhere in their path
我正在使用
find ./*/*/*/FOO/*/*/!(!(*.tif)|*v.tif) -type f
获取目录树中所有不以 v.tif
结尾的 tiff 文件。如何编辑命令以查找路径中带有 FOO
anywhere 的文件?我遇到了 globstar,但它似乎在 mac 的默认值 bash 上不可用。
额外的问题:Windows prompt/Powershell 相当于什么?
对于 powershell
Get-ChildItem -Path <path> -Recurse -Filter *FOO*.tif -Exclude *v.tif
也可以使用它在目录名称中包含 FOO
Get-ChildItem -Path c:\ASB -Recurse -Filter *.tif -Exclude *v.tif -Include *FOO*
更通用的解决方案
Get-ChildItem -Path c:\ASB -Recurse -Filter *.tif -Exclude *v.tif | Where-Object FullName -like *FOO*
要在其完整路径名中的任何位置添加 FOO
:
find . -type f -wholename "*FOO*"
另外以 .tif
结尾并排除 *v.tif
:
find . -type f -wholename "*FOO*[^v].tif"
但是上面的排除了*FOO.tif
的边缘情况,所以这样比较好:
find . -type f -wholename "*FOO*.tif" ! -name "*v.tif"
看起来您已经在使用 shopt
的 extglob
。添加 globstar
.
shopt -s globstar
然后
find **/FOO/**/ -type f ! -name '*v.tif'
仅适用于 TIF
find **/FOO/**/* -type f -name '*.tif' ! -name '*v.tif'
我正在使用
find ./*/*/*/FOO/*/*/!(!(*.tif)|*v.tif) -type f
获取目录树中所有不以 v.tif
结尾的 tiff 文件。如何编辑命令以查找路径中带有 FOO
anywhere 的文件?我遇到了 globstar,但它似乎在 mac 的默认值 bash 上不可用。
额外的问题:Windows prompt/Powershell 相当于什么?
对于 powershell
Get-ChildItem -Path <path> -Recurse -Filter *FOO*.tif -Exclude *v.tif
也可以使用它在目录名称中包含 FOO
Get-ChildItem -Path c:\ASB -Recurse -Filter *.tif -Exclude *v.tif -Include *FOO*
更通用的解决方案
Get-ChildItem -Path c:\ASB -Recurse -Filter *.tif -Exclude *v.tif | Where-Object FullName -like *FOO*
要在其完整路径名中的任何位置添加 FOO
:
find . -type f -wholename "*FOO*"
另外以 .tif
结尾并排除 *v.tif
:
find . -type f -wholename "*FOO*[^v].tif"
但是上面的排除了*FOO.tif
的边缘情况,所以这样比较好:
find . -type f -wholename "*FOO*.tif" ! -name "*v.tif"
看起来您已经在使用 shopt
的 extglob
。添加 globstar
.
shopt -s globstar
然后
find **/FOO/**/ -type f ! -name '*v.tif'
仅适用于 TIF
find **/FOO/**/* -type f -name '*.tif' ! -name '*v.tif'