我有一个目录包含几个子目录:
./abc/
./cde/
./link_to_abc -> ./abc
abc和cde是普通目录,但link_to_abc是一个目标为abc的软链接。
现在我想用linux的find命令找到没有软链接的普通dirs,在我的例子中,它是cde。怎么做?
因为我需要删除一些目录,但我应该检查没有人再使用我的文件了(没有其他符号链接指向我的目录)
答案 0 :(得分:3)
以下解决方案使用多个find
但应该有效:
# step1: list all directories:
$ find /absolute/path -type d | sort > real_dirs.txt
# step2: list all files "pointed" by a symlink:
$ find /absolute/path -type l -exec readlink -f {} \; | sort > sym_dirs.txt
# step3: get directories not "pointed" by symlinks:
$ comm -23 real_dirs.txt sym_dirs.txt
答案 1 :(得分:1)
使用find ! -type l
或find -type d