Bash
OSX:通過命令行刪除所有匹配的證書
使用 shell 腳本刪除所有匹配的證書。
我使用以下方法找到了證書列表:
security find-certificate -c "certificatename" -a -Z|grep SHA-1|awk '{ print $NF }'
輸出是這樣的:
$ bash delete-cert.sh 62D58774F9329FA1F96A2BB0C090130305B879ED 94B149CFDF32BDB1C9C28179FB586291167EC235
現在,我想對這些
SHA-1
雜湊中的每一個執行刪除命令,我該怎麼做?sudo security delete-certificate -Z hash
我是這樣做的,
hashes=$(security find-certificate -c "certificatename" -a -Z|grep SHA-1|awk '{ print $NF }') for hash in $hashes; do echo deleting $hash sudo security delete-certificate -Z $hash done
但我喜歡#chaos 的單行解決方案
用這個:
security find-certificate -c "certificatename" -a -Z | \ sudo awk '/SHA-1/{system("security delete-certificate -Z "$NF)}'
awk
用 呼叫sudo
。awk
然後搜尋字元串並使用雜湊作為參數SHA-1
呼叫命令。security delete-certificate
您只需提供sudo
一次密碼。