我正在编写一个bash shell脚本(适用于RH和Solaris),它使用openssl创建散列符号链接到同一目录内的所有证书。我有大约130个证书,并且在添加新证书时,我希望脚本仅为新证书创建符号链接。我可能不得不求助于删除所有符号链接并重新创建它们,但是如果有一个不太困难的方法来执行此操作,这比删除全部并重新创建更可取。如何检查文件是否有符号链接
我知道如何找到符号链接的所有文件:
find . -lname '*.cer'
或
find . -type l -printf '%p -> %l\n'
但我不知道如何在否定或发现这个结果的逆对或其他循环。我想查找当前目录中缺少符号链接的所有文件。
谢谢!
找到所有的文件,找到具有符号链接的所有文件,找到的差异。 –
循环遍历每个文件,检查是否存在关联的链接,如果没有,则创建链接。您还需要提供其他信息,如示例文件名和示例链接名称,以提供它们之间的关联(如果有)。这也可能提供另一种识别需要链接的文件的方式。 –
[如何检查符号链接是否存在]的可能重复(http://stackoverflow.com/questions/5767062/how-to-check-if-symlink-exists)。从问题和答案看,你似乎想在Bash中测试'-e'和'!-h'。 – jww