【问题标题】:Find files with a specific folder name anywhere in their path在路径中的任意位置查找具有特定文件夹名称的文件
【发布时间】:2020-09-14 13:52:45
【问题描述】:

我正在使用

find ./*/*/*/FOO/*/*/!(!(*.tif)|*v.tif) -type f

在目录树中获取所有不以v.tif 结尾的 tiff 文件。如何编辑命令以查找路径中带有 FOO anywhere 的文件?我遇到了 globstar,但它似乎在 mac 的默认 bash 上不可用。

额外问题:Windows 提示符/Powershell 等效于什么?

【问题讨论】:

    标签: bash file find


    【解决方案1】:

    在完整路径名中的任意位置包含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"
    

    【讨论】:

      【解决方案2】:

      您似乎已经在使用shoptextglob。添加globstar

      shopt -s globstar
      

      然后

      find **/FOO/**/ -type f ! -name '*v.tif'
      

      仅适用于 TIF

      find **/FOO/**/* -type f -name '*.tif' ! -name '*v.tif'
      

      【讨论】:

      • 这甚至不会在非 FOO 目录中查找。
      • globstar 在 mac 的默认 bash 上不可用 :( 而且我不喜欢 Brew 安装另一个 Bash 并将其设为默认值
      • 好吧,废话。 -wholename 是你最好的选择。
      • +1 以获得好的答案。这也将调查非 FOO,因为它返回 any/thing/FOO.tif。另外我没想到-wholename 会更快,我认为这类似于-name "*" 通过(超级命令)find 内部扩展而不是shell。
      • 你测试了吗?不适合我。应该只查看包含 FOO 作为完整目录名称的路径。尽管如此,我还是删除了路径末端多余的*
      【解决方案3】:

      用于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*
      

      【讨论】:

      • 我还没有尝试过,但它似乎不会包含任何 tiff 文件,对吧?我只想过滤掉以“v”结尾的那些。而FOO是一个目录,这个FOO.txt是怎么工作的?
      • 您可以更改该部分。我打错了:)
      • 对不起,我还没有完全理解。我能够使用Get-ChildItem -Path . -Recurse -Include *.tif -Exclude *v.tif 列出文件,但 -Filter 部分不起作用。这些文件不直接在FOO 下,我需要在其路径的某个点具有 FOO 的所有文件。
      • 包括目录名?
      • 是的。 -Filter FOO 返回我的树中的所有FOO 目录,但 FOO.tif 不返回任何内容。 -Filter .tif -Include *FOO 也不给我任何东西
      猜你喜欢
      • 2018-03-20
      • 1970-01-01
      • 2014-03-13
      • 2020-03-29
      • 1970-01-01
      • 2017-11-24
      • 2011-03-10
      • 2019-05-28
      • 2011-03-13
      相关资源
      最近更新 更多