Symlink

如何刪除指向某個文件夾中文件的符號連結?

  • April 1, 2017

我認為最好用一個例子來解釋:

lrwxrwxrwx 1 root   root      21 Mar 31 08:44 awk -> /etc/alternatives/awk*
-rwxr-xr-x 1 root   root     45K Apr  8  2015 b43-fwcutter*
lrwxrwxrwx 1 root   root      35 Apr  1 21:42 backup-config -> /home/myuser/scripts/backup-config.sh
lrwxrwxrwx 1 root   root      37 Apr  1 21:42 backup-to-server -> /home/myuser/scripts/backup-to-server.sh

我想刪除所有指向 /home/myuser/scripts 中文件的符號連結。

在這個例子中。我希望刪除備份配置和備份到伺服器。

謝謝!

附言。我要刪除的文件夾中有其他符號連結,但它不是從備份開始的,所以我不能真正使用模式。

循環文件並將符號連結與模式匹配。這應該適用於具有絕對路徑的直接連結(而不是像../../something,或跳過多個符號連結的東西。)

for f in * ; do
   [ -L "$f" ] || continue;                      # skip anything but symlinks
   l=$(readlink "$f")                            # read the link contents
   case "$l" in 
       /home/myuser/scripts/*) echo rm "$f" ;;   # match against a pattern
   esac
done

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