
Sayはa
シンボリックリンクですb
。a
私はこれらの両方を削除する簡単なコマンドを探していb
ますb
。
答え1
明らかにコメントを残すことはできないので、これに対する答えは次のとおりです。a
リンクなので、逆参照されたディレクトリで再帰オプションを使用する必要があります。
rm -rf "$(readlink -f "a")"; rm -f "a"
答え2
私の現在のソリューションは
rm -rf "$(readlink -f "a")"; rm -f "a"
しかし、もっと簡単なことがありますか?
答え3
一部のシステムは、末尾のスラッシュを追加するときにシンボリックリンクを逆参照します(少なくともシンボリックリンクがディレクトリを指している場合)。
mkdir -p b/c && touch b/c/foo && ln -s b/c a
rm -rf a/ && rm -f a
# removed "b/c" and "a"
POSIX標準が一部変更されました(パス名の確認を参照)。IEEE規格1003.1、2004年版そしてIEEE規格1003.1-2008)が、末尾のスラッシュを持つパス名とシンボリックリンクである最終パス名コンポーネントは(ほとんど)同じように動作するようです。つまり、シンボリックリンクが確認されます。
ただし、すべてのシステムがこの動作を実装するわけではありません(Gillesの説明を参照)。