`find`は最上位ディレクトリとその内容を削除します。

`find`は最上位ディレクトリとその内容を削除します。

私は走った

/bin/find /home/user/myfiles \! -name '.htaccess' -exec rm -r {} \;

それはすべてを削除します存在する myfilesディレクトリmyfiles自体が.htaccess存在しない場合。

私が期待するのは、ディレクトリからファイル(.htacessすべてのファイルを除く)を見つけて削除することです。

私は何が間違っていましたか?

ベストアンサー1

あなたのバージョンが(GNU、macOS Monterey、または他のバージョン)をfindサポートしている場合は、次のものを使用できます。-delete-mindepthfind

/bin/find /home/user/myfiles -mindepth 1 -delete

それ以外の場合は、find次のようにパスを指定してみましょう。

/bin/find /home/user/myfiles/*

保持したいディレクトリの下のすべてのエントリをマージし、findその下で作業を実行します。

これは、単にアイテムをリストまたは削除する前に削除するなど、非破壊的な方法で最初に実行するために基本的に独自のタスクパラメータを取得するfindなどのツールにとって良いアイデアです。

おすすめ記事