Используя расширенные функции glob-оболочки bash (которые по умолчанию включены в текущих установках Ubuntu), с учетом
$ tree A
A
├── B
├── C
│ ├── ac1
│ └── ac2
└── D
5 directories, 0 files
вы можете адресовать все, кроме C и его содержимого, используя выражение glob A/!(C) ie
$ echo A/!(C)
A/B A/D
Итак, в расширенный glob все, кроме каталога C и его содержимого, вы можете просто использовать
rm -rf A/!(C)
, оставив [!d5 ]
$ tree A
A
└── C
├── ac1
└── ac2
3 directories, 0 files