8つの異なるサブディレクトリを含む/ dataディレクトリのすべてのファイルを削除したいと思います。
実際のフォルダを削除せずにすべてのサブディレクトリを再帰的に消去するコマンドはありますか?
答え1
次のコマンドは、/data
通常のファイル、シンボリックリンク、名前付きパイプ、ソケットなど、ディレクトリ内または下のディレクトリ以外のすべてのファイルを削除します。
find /data ! -type d -delete
find
非標準述語を持たない実装の場合は、その-delete
場所-exec rm -f {} +
に次を使用してください。
find /data ! -type d -exec rm -f {} +
その後、その中またはその下にあるディレクトリではなく、すべてのファイルを見つけ、できるだけ多くのバッチで実行します/data
。rm -f
答え2
検索コマンドを使用
find /data -type f -exec rm -rf {} \;
タイプの選択タイプによってはファイルのみが削除されます。 f。
答え3
このfind
コマンドを使用してこれを実行できます。
説明を再現するテストケースを作成するには、次のようにします。cd /tmp
1.2.3.4。mkdir -p testing/{a,b,c}
cd testing/
touch {a,b,c}/{1,2,3}
それぞれが複数のファイルを含むディレクトリが複数あることを確認するには、次の手順に従ってください。
$ find -type f
./c/3
./c/2
./c/1
./b/3
./b/2
./b/1
./a/3
./a/2
./a/1
find
これで、再利用して見つかったコンテンツを削除できます。
find -type f -delete
もう一度実行すると、find -type f
ファイルが消えたため結果は返されませんが、ディレクトリはまだ残っていることがわかります。
$ ls
a b c
このfind
コマンドは非常に強力です。より多くの関連情報を検索するために使用できますman find
。