【发布时间】:2016-02-28 13:49:28
【问题描述】:
我正在编写一个 bash shell 脚本(用于 RH 和 Solaris),它使用 openssl 在同一目录中创建指向证书的哈希符号链接。我有大约 130 个证书,当添加新证书时,我希望脚本仅为新证书创建符号链接。我可能不得不求助于删除所有符号链接并重新创建它们,但是如果有一种不那么困难的方法来做到这一点;这比删除所有并重新创建要好。
我知道如何找到所有带有符号链接的文件:
find . -lname '*.cer'
或
find . -type l -printf '%p -> %l\n'
但我不确定如何在 for 或其他循环中否定或找到此结果的倒数。我想查找当前目录中缺少符号链接的所有文件。
谢谢!
【问题讨论】:
-
查找所有文件,查找所有带符号链接的文件,找出差异。
-
循环遍历每个文件,检查是否有关联的链接,如果没有,创建链接。您还需要提供其他信息,例如示例文件名和示例链接名称,以提供它们之间的关联(如果有)。这也可能提供另一种识别需要链接的文件的方法。
-
How to check if symlink exists 的可能重复项。从问题和答案来看,您似乎想在 Bash 中同时测试
-e和!-h。