【问题标题】:Linux command to find a single directory - which is the only directory present [closed]Linux命令查找单个目录-这是唯一存在的目录[关闭]
【发布时间】:2017-04-01 01:01:18
【问题描述】:

我需要一个命令,其输出将是我正在搜索的目录的绝对路径。

条件:父目录不应包含除我要查找的目录之外的任何其他目录。

例子:

假设我有以下目录结构,我正在搜索 GHI 目录:

  1. /home/user/ABC/XYZ/
  2. /home/user/ABC/PQR/GHI
  3. /home/user/LMN/GHI/
  4. /home/user/LMN/DEF/

现在,如果我运行命令,输出应该是:

- /home/user/ABC/PQR/GHI 因为 GHI 是父目录 PQR 中唯一存在的子目录。

【问题讨论】:

    标签: linux


    【解决方案1】:
    find ~ -type d -maxdepth 2 -depth 2 | awk -F/ '{print $5, $4}' \
        | sort -k2 | uniq -u -f1 | awk '{print $2"/"$1}'
    

    它是如何工作的?首先它打印所有深度为 2 的目录,然后将它们从 ABC/XYZ 翻转到 XYZ ABC。然后它只接受唯一的,忽略第一个字段(在我们的示例中为XYZ)。然后将唯一记录翻转回原始顺序,例如ABC/XYZ

    请注意,它不能正确处理包含空格的目录名称。这是给读者的练习。

    【讨论】:

    • 我不觉得 OP 关心它是如何工作的。他只是需要一个命令。
    • @hek2mgl:当然。这就是为什么我很乐意编写这个 shell 怪物而不是真正的代码!
    • @JohnZwinck :将命令修改为 -find ./ -maxdepth 4 -type d | awk -F/ '{打印 $5, $4, $3}' |排序-k2 |唯一的-u -f1 | awk '{print $2"/"$1}' 。这符合我的要求,谢谢..!!
    • @hek2mgl :正是。 :-P
    • @hek2mgl:检查一下——直接从阴沟到产品!
    猜你喜欢
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 2013-05-23
    • 1970-01-01
    • 2023-04-03
    • 2017-09-23
    • 2013-12-14
    相关资源
    最近更新 更多