bash - 如何检查文件是否有符号链接(symbolic link)

标签 bash symlink

我正在编写一个 bash shell 脚本(适用于 RH 和 Solaris),它使用 openssl 在同一目录中创建指向证书的哈希符号链接(symbolic link)。我有大约 130 个证书,当添加新证书时,我希望脚本仅为新证书创建符号链接(symbolic link)。我可能不得不求助于删除所有符号链接(symbolic link)并重新创建它们,但是如果有一种不那么困难的方法可以做到这一点;这比全部删除并重新创建要好。

我知道如何找到所有带符号链接(symbolic link)的文件:

find . -lname '*.cer'

find . -type l -printf '%p -> %l\n'

但我不确定如何在 for 或其他循环中否定或找到此结果的倒数。我想查找当前目录中缺少符号链接(symbolic link)的所有文件。

谢谢!

最佳答案

$ ls -srlt
example1.png
example.png -> ../example.png

$ find . -type f -print
./example1.png

$ find . ! -type f -print
.
./example.png

关于bash - 如何检查文件是否有符号链接(symbolic link),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35683324/

相关文章:

c++ - 如何找到文件/文件夹的所有硬链接(hard link)和符号链接(symbolic link)(Windows 和 UNIX)?

python - 如何使用 Python 在 Windows 中创建符号链接(symbolic link)?

R 中的 Windows/Cygwin 链接

linux - 循环直到满足条件并写入文件

bash - 在 bash 中查找文件中出现频率最高的行

linux - 如何通过rsync只复制符号链接(symbolic link)

symlink - 如何获取 Perl 6 中符号链接(symbolic link)的目标?

bash - 在Bash中,为什么 '['和 ']'周围应该有空格?

regex - 使用环境变量替换 Sed 字符串

bash - 如何使用Shell脚本每4分钟在HDFS(Hadoop)上的目录中查找是否有新文件