Linux 命令查找单个目录 - 这是唯一存在的目录

标签 linux

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

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

示例:

假设我有以下目录结构,并且正在搜索 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 中唯一存在的子目录。

最佳答案

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

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

关于Linux 命令查找单个目录 - 这是唯一存在的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40655700/

相关文章:

linux - 交叉编译树莓派 opencv 链接问题

python - 从 python 运行时,Docker 图像给我 "executable file not found in $PATH"

linux - 不同行的 IF 语句

linux - 关于linux命令 "xargs"的使用

mysql - 当我克隆一个 mysql 数据库时,在各个表上设置了 data_directory,克隆的表作为文件存储在哪里?

python - 如何使用python监控全局键盘事件?

linux - 如何在自己的机器上为生产设置 Node 服务器?

linux - 如何构建Linux内核以支持SO_ATTACH_BPF套接字选项?

c - ARM设备树文件中,三个中断值是什么意思

php - 如何在 Linux 服务器上使用 php 获取客户端的 MAC 地址