Предположим, у меня есть каталог, который содержит:
.\Folder\Folder1\exe\a.exe
.\Folder\Folder1\dll\b.dll
.\Folder\Folder1\txt\c.txt
.\Folder\Folder2\exe\a.exe
.\Folder\Folder2\dll\b.dll
.\Folder\Folder2\txt\c.txt
.
.
.
Теперь я хочу рекурсивно удалить из .\Folder\ кроме всех *.txt, чтобы:
.\Folder\Folder1\exe\
.\Folder\Folder1\dll\
.\Folder\Folder1\txt\c.txt
.\Folder\Folder2\exe\
.\Folder\Folder2\dll\
.\Folder\Folder2\txt\c.txt
.
.
.
Может ли кто-нибудь предложить команду для использования rm для выполнения этой работы? Спасибо!
Я старался:
cd .\Folder
shopt -s extglob
рм -рф !("*.txt")
но он удаляет все файлы и каталог внутри .\Folder