検索+特定のフォルダにのみ存在するファイルを削除する方法[閉じる]

検索+特定のフォルダにのみ存在するファイルを削除する方法[閉じる]

フォルダの下のファイルを削除するには、次の方法で検索できます。

find /home -type f -delete

しかし、一時フォルダの下にあるファイルのみを再帰的に削除する方法は?

次の一時パスの例があるとします。

/home/bla/bla/temp
/home/test/temp
/home/subf/subf/subf/temp
.
.
.
/home/1/temp

tempディレクトリの下のファイルのみを削除するように検索構文を変更する方法

目的は、findコマンドを使用して一時フォルダのみを照合し、一時ディレクトリの下のファイルを削除することです。

答え1

 find /home -type f -delete

削除しないでください文書、削除されます一般ファイルただし、fifo、デバイス、ディレクトリ、シンボリックリンク、ソケットなどを含む他のすべての種類のファイルは除外されます。

タイプを除くすべてのファイルを削除する場合目次、マンディレクトリツリーだけを残す! -type dのではなく、これを使用できます-type f

名前付きディレクトリまたはその下にあるディレクトリ以外のすべてのファイルを削除するには、temp次の手順を実行します。

LC_ALL=C find /home -path '*/temp/*' ! -type d -delete

答え2

一時フォルダを削除して再作成することもできます。

function delete-and-recreate() {
    rm -r $1
    mkdir $1
}

delete-and-recreate $(find . -name temp -type d)

関連情報