別のユーザーが入力したディレクトリがあり、それを管理する必要があります。特定の名前を持つ2つのファイルを除くすべてのコンテンツを削除したい。 rm
で可能ですか、これを行う必要がありますか:
cp aaa/a ./a && cp aaa/b ./b && rm -rf aaa/* && mv ./a aaa/a && mv ./b aaa/b
ここで、aaa
はディレクトリ、a,b
は保持するファイルであり、そこに他のファイル/ディレクトリがあります(少なくとも、存在する可能性があります)。
より良い(そしてより短い)方法はありますか?
Bash拡張グロブで、与えられた
$ tree aaa
aaa
├── a
├── b
├── c
├── d
├── e
└── subdir
それから
rm -rf aaa/!(a|b)
葉
$ tree aaa
aaa
├── a
└── b
0 directories, 2 files