質問: いくつかを除いてディレクトリ内のすべてのファイルを削除するにはどうすればいいですか? ディレクトリ内のすべてのファイルを削除する必要がありますが、それらの一部を除外してください。たとえば、ファイルa b c ... zがあるディレクトリで、uとpを除くすべてを削除する必要があります。これを行う簡単な方法はありますか?
回答: findを使うことができますfind . ! -name u ! -name p -maxdepth 1 -type f -delete !は次の式を否定します -nameはファイル名を指定します -maxdepth 1はfindプロセスを指定されたディレクトリのみにします(デフォルトでfindはディレクトリを行き来します) -type fはファイルのみを処理します(ディレクトリなどは対象外) -deleteはファイルを削除します それから findのmanページ を見て条件を調整することができます更新 式の要素の順序は重要です(ドキュメントを参照)。 -printの代わりに-deleteを使用して、最初にコマンドをテストしてください。 find . ! -name u ! -name p -maxdepth 1 -type f -print