2つのディレクトリがあります:/all/origins/
&/all/links/
。
inのすべての項目はlinks/
inの項目を個別に指しますが、inのorigins/
すべての項目がorigins/
互いに関連しているわけではありませんlinks/
。 (正方形、長方形、分類階層を理解しましたか?)これはln -s
ハードリンクではなくシンボリックリンク()です。
1.のすべての項目links/
はもちろん、2.のシンボリックリンクの宛先origins/
(存在するかどうかは不明origins/
)と3.links/
ディレクトリ自体も削除する必要があります。
何rm
Unixコマンドディレクトリlinks/
全体とシンボリックリンクを持つシンボリックリンクターゲットを削除するには、何を入力する必要がありますかorigins/
?
私は次のようなものを探しています:rm -R /all/links
またはrm -r --follow-all-ln /all/links
。
引数を含むコマンドが何もしない場合、rm
これは私が好むものであり、タイトルに暗示されているので明示的に明記してください(UnixとLinuxをrm
繰り返すことなく実行できますかdo
? -ただこれがうまくいかない場合は、どのループを指定して説明してくださいdo
。 )
答え1
問題が発生した場合に備えて、まずデータをバックアップしてください。
/all/links/
私が理解したのは、ディレクトリのすべての内容とそのディレクトリ内のリンクが指すファイルを削除したいということです。
必要に応じて単純なUnixコマンドではこれを行うことはできませんが、単純なスクリプトを使用して実行できます。
#!/bin/bash
for i in /all/links/*
do
rm "$(readlink -f $i)"
rm "$i"
done
rmdir /all/links
あなたが言ったように、中のすべてのファイルはシンボリックリンクなので、すべての値がリンクであることを/all/links/
確認する必要はありません。i