Symlink
如何刪除指向某個文件夾中文件的符號連結?
我認為最好用一個例子來解釋:
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