rm はディレクトリ、シンボリックリンク、シンボリックリンクターゲットを削除しますか? [コピー]

rm はディレクトリ、シンボリックリンク、シンボリックリンクターゲットを削除しますか? [コピー]

2つのディレクトリがあります:/all/origins//all/links/

inのすべての項目はlinks/inの項目を個別に指しますが、inのorigins/すべての項目がorigins/互いに関連しているわけではありませんlinks/。 (正方形、長方形、分類階層を理解しましたか?)これはln -sハードリンクではなくシンボリックリンク()です。

1.のすべての項目links/はもちろん、2.のシンボリックリンクの宛先origins/(存在するかどうかは不明origins/)と3.links/ディレクトリ自体も削除する必要があります。

rmUnixコマンドディレクトリ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

おすすめ記事