【问题标题】:Searching for directories that contain two files of any name, with specific extensions搜索包含两个具有特定扩展名的任意名称文件的目录
【发布时间】:2021-05-29 03:31:19
【问题描述】:

我发现这篇文章符合我的要求,但原始发帖人知道他们在搜索什么文件。

Finding directories that contains given files?

如何更新此 find 命令以搜索并列出包含两个任意名称但具有两个特定文件扩展名的文件的任何子目录?

find -type d -exec sh -c '[ -f "$0"/index.php ] && [ -f "$0"/style.css ]' '{}' \; -print

具体来说,我希望在所有子文件夹中搜索包含 *.RAR 文件AND *.VMK 文件的目录。当我用已知文件夹的特定文件名替换“index.php”和“style.css”时,我得到了正确的结果。

现在我只需要一些帮助来用通配符和扩展名替换那些特定的文件名。

我已经尝试了这两个选项,但它们没有按预期工作。

find -type f '[ -f "$0"/*.rar ] && [ -f "$0"/*.vmk ]' '{}' \

find -type f '[ -f "$0"/"*.rar" ] && [ -f "$0"/"*.vmk" ]' '{}' \

提前感谢您的帮助,非常感谢! :)

问候。

【问题讨论】:

    标签: shell unix find command


    【解决方案1】:

    呃。我在原始帖子中出现了复制和粘贴错误,并发布了我失败的代码尝试之一。

    但是,当我将您的 cmets Armali 应用于我要发布的内容时,它可以正常工作。

    这是我最终得到的结果:

    find -type d -exec sh -c '[ -f "$0"/*.rar ] && [ -f "$0"/*.mkv ]' '{}' \; -print
    

    谢谢。

    【讨论】:

      【解决方案2】:

      您尝试的两个选项与原来的工作命令有很大不同。如果你只是用你想要的*.rar*.vmk(没有"")替换其中的index.phpstyle.css,只要没有更多的*.rar*.vmk文件,它就可以工作在文件夹中。

      【讨论】:

      • 呃。我在原始帖子中犯了 COPY & PASTE 错误,并发布了我失败的代码尝试之一。但是,当我将您的 cmets Armali 应用于我要发布的内容时,它按预期工作。这是我最终得到的结果: ( find -type d -exec sh -c '[ -f "$0"/*.rar ] && [ -f "$0"/*.mkv ]' '{}' \; -打印)谢谢。
      猜你喜欢
      • 1970-01-01
      • 2016-08-29
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-14
      • 2021-05-03
      • 1970-01-01
      相关资源
      最近更新 更多