.txt
と.exe
拡張子を持たないすべてのファイルを現在の作業ディレクトリに再帰的に削除するにはどうすればよいですか?私は1つのライナーが必要です。特定の拡張子を持たないファイルを削除するには?
私が試した:
find . ! -name "*.txt" "*.exe" -exec rm -r {} \
find -type f -regextype posix-extended -iregex '.*\.(txt|exe)$'
.txt
と.exe
拡張子を持たないすべてのファイルを現在の作業ディレクトリに再帰的に削除するにはどうすればよいですか?私は1つのライナーが必要です。特定の拡張子を持たないファイルを削除するには?
私が試した:
find . ! -name "*.txt" "*.exe" -exec rm -r {} \
find -type f -regextype posix-extended -iregex '.*\.(txt|exe)$'
はこれを試してみてください。
find . -type f ! -name "*.exe" ! -name "*.txt" -exec rm {} \;
上記のコマンドは、再帰的に、現在のディレクトリおよびサブディレクトリ内のすべての.exe以外のファイルや.txt拡張子のファイルを削除します。
ありがとう、それは働いた。 –
あなたは-delete
アクションでGNU見つけた場合は:チェーンの引数で一度だけrm
を実行するために-exec ... {} +
を使用して
find . -type f ! \(-name '*.txt' -o -name '*.exe' \) -exec rm -f {} +
:
find . -type f ! \(-name '*.txt' -o -name '*.exe' \) -delete
そうでない場合。
これはあなたを助けることができると思います: http://unix.stackexchange.com/questions/153862/remove-all-files-directories-except-for-one-file –
あなたの1つのライナーコマンドが有効ですか? – sureshkumar
彼らは動作しませんでした。リンクも役に立たなかった。 –