Files

如何:查找符號連結的名稱

  • October 27, 2020

我做了一個符號連結,ln -s /home/orca/www/* /var/現在我需要刪除它。我需要移動我所有的網路文件/var/www/home因為我/已經滿了。 這就是我所做的。

我從這裡看到我只是簡單地rm symlink_name但究竟是什麼名字?

rm /home/orca/www/*                           ? 

即使我讀過很多文章,我也傾向於把事情倒退,因為我天生就是非正統的。這是一個實時生產伺服器,所以我在採取行動之前要謹慎行事。少即是多。我寧願安全而不是抱歉。備份已到位。

請參閱man ln中的文件。

你使用了第三種形式

ln [OPTION]... TARGET... DIRECTORY

這將為DIRECTORY中的所有TARGET創建連結。

您的命令已為 中的所有文件和目錄(以及其他對象,如果有)創建(或嘗試創建)連結/home/orca/www如果名稱已存在於/var. (在這種情況下,您的命令可能會列印錯誤消息。)

由於/var通常不是空的,您不能簡單地刪除所有內容。

我現在可以建議的最好方法是刪除其中存在的所有名稱/home/orca/www/var如果它是那裡的符號連結)。

此循環將顯示將被刪除的內容:

for i in /home/orca/www/*
do
   l=/var/"${i##*/}"
   if [ -h "$l" ]
   then
       echo rm "$l"
   fi
done

**檢查輸出。**如果這是您想要的,請刪除echo以真正執行rm命令。

for i in /home/orca/www/*
do
   l=/var/"${i##*/}"
   if [ -h "$l" ]
   then
       rm "$l"
   fi
done

引用自:https://unix.stackexchange.com/questions/616537