На этот вопрос уже есть ответ здесь:
У меня есть каталог, который я заполняю другим пользователем, и мне поручено поддерживать его. Я хочу удалить все его содержимое, кроме двух файлов с определенным именем. Возможно ли это с помощью rm
, или я должен сделать это:
cp aaa/a ./a && cp aaa/b ./b && rm -rf aaa/* && mv ./a aaa/a && mv ./b aaa/b
где aaa
- это каталог, a, b
- это файлы, которые я хочу сохранить, и там (по крайней мере, могут быть) другие файлы / каталоги.
Есть ли способ лучше (и короче)?
С ударом расширил шарики, данные
$ tree aaa
aaa
├── a
├── b
├── c
├── d
├── e
└── subdir
затем
rm -rf aaa/!(a|b)
листы
$ tree aaa
aaa
├── a
└── b
0 directories, 2 files