我需要一个命令,其输出将是我正在搜索的目录的绝对路径。
条件:父目录不应包含除我要查找的目录之外的任何其他目录。
示例:
假设我有以下目录结构,我正在搜索GHI目录:
现在,如果我运行命令,输出应该给我:
- / home / user / ABC / PQR / GHI 因为GHI是父目录PQR中唯一存在的子目录。
答案 0 :(得分: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
。
请注意,它无法正确处理包含空格的目录名称。这对读者来说是一种练习。