Unixで1つ(またはいくつか)のファイルを除くすべてを削除するにはどうすればよいですか?
何かのようなもの
rm -rf -ignore myfile.txt *
Unixで1つ(またはいくつか)のファイルを除くすべてを削除するにはどうすればよいですか?
何かのようなもの
rm -rf -ignore myfile.txt *
回答:
ls * | grep -v dont_delete_this_file | xargs rm -rf
例:
mkdir test && cd test
touch test1
touch test2
touch test3
touch test4
touch test5
「test2」以外のすべてのファイルを削除するには:
ls * | grep -v test2 | xargs rm -rf
次に、「ls」の出力は次のとおりです。
test2
編集:
コメントありがとうございます。ディレクトリにスペースのあるファイルが含まれている場合:
mkdir test && cd test
touch "test 1"
touch "test 2"
touch "test 3"
touch "test 4"
touch "test 5"
あなたは(bashで)使用できます:
rm !("test 1"|"test 4")
「ls」出力:
test 1
test 4
ls -1 | grep -v do_not_delete | xargs -I files rm "files"
このページには、シェルに応じてさまざまなオプションがあります。http: //www.unix.com/unix-dummies-questions-answers/51400-how-remove-all-except-one-file.html