次の例を挙げて説明するのが最善だと思います。
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内のファイルを指すすべてのシンボリックリンクを削除したいと思います。
この例では。バックアップ構成を削除してサーバーにバックアップしたいと思います。
ありがとうございます!
PS削除したいフォルダに別のシンボリックリンクがありますが、バックアップにあるものではないため、パターンを実際に使用することはできません。
答え1
ファイルを繰り返し、シンボリックリンクをパターンに合わせます。これは絶対パスを持つ直接リンクに対して機能します(../../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