ディレクトリ内のサブディレクトリ内のファイル+ファイルを削除する

ディレクトリ内のサブディレクトリ内のファイル+ファイルを削除する

8つの異なるサブディレクトリを含む/ dataディレクトリのすべてのファイルを削除したいと思います。

実際のフォルダを削除せずにすべてのサブディレクトリを再帰的に消去するコマンドはありますか?

答え1

次のコマンドは、/data通常のファイル、シンボリックリンク、名前付きパイプ、ソケットなど、ディレクトリ内または下のディレクトリ以外のすべてのファイルを削除します。

find /data ! -type d -delete

find非標準述語を持たない実装の場合は、その-delete場所-exec rm -f {} +に次を使用してください。

find /data ! -type d -exec rm -f {} +

その後、その中またはその下にあるディレクトリではなく、すべてのファイルを見つけ、できるだけ多くのバッチで実行します/datarm -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

関連情報