運行OSX 10.11.2,我需要rm -rf文件,位於atom,npm和node下面的符號鏈接中指示的位置以及鏈接。我目前以用戶身份登錄,但終端處於su模式。
我嘗試了幾個命令無濟於事。我試圖去那些地方,但不知道如何。從符號鏈接OSX終端rm -rf文件
謝謝
運行OSX 10.11.2,我需要rm -rf文件,位於atom,npm和node下面的符號鏈接中指示的位置以及鏈接。我目前以用戶身份登錄,但終端處於su模式。
我嘗試了幾個命令無濟於事。我試圖去那些地方,但不知道如何。從符號鏈接OSX終端rm -rf文件
謝謝
開始,rm
本身並沒有一個合適的選項刪除該鏈接指向的文件。這會讓你在一個命令中做到這一點很麻煩。腳本幫助:
#!/bin/sh
for name in "[email protected]"
do
if [ -L "$name" ]
then
target=$(stat -f '%Y' "$name")
$0 "$target"
fi
[ -e "$name" ] && rm -rf "$name"
done
該腳本使用OSX stat
命令來獲取鏈接目標,和復發到自身,以去除所述目標(可能是另一條鏈路),以及去除所述目標之後,刪除鏈接(或非鏈接,視情況而定)。
在評論中,OP澄清說,鏈接本身不應該被刪除。這可以通過更改測試來完成:
#!/bin/sh
for name in "[email protected]"
do
if [ -L "$name" ]
then
target=$(stat -f '%Y' "$name")
$0 "$target"
fi
[ -e "$name" ] && [ ! -L "$name" ] && rm -rf "$name"
done
我需要單獨離開應用程序符號鏈接,而不是觸摸它,以及自我發佈後創建的其他符號鏈接。我沒有看到你的代碼中排除了這樣的例外,thx –
Thomas:謝謝你更新你的答案。我的評論與在我發佈的圖片中選擇某個列表相關,例如我想忽略apm行。對不起,apm被瀏覽器拼寫更正爲應用程序,這不是我的意圖。最好是修改代碼以選擇要刪除的項目,並選擇要排除的項目。 –
您可以使用'readlink'來獲取目標路徑。 –