我正在編寫一個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