Просто используйте петлю for Bash и test, чтобы отфильтровать нужные каталоги и команду rm -rf для рекурсивного удаления каталогов, например:
for x in /path/to/parent/*; do test "$x" != "dir_survive" && rm -rf "$x"; done
. Итерирует все элементы (файлы и каталоги) внутри /path/to/parent/ и удаляет элемент рекурсивно, если его имя не равно dir_survive. Если родительский каталог является текущим каталогом, вы можете писать * в качестве пути.
Если вы не уверены и хотите проверить, какие элементы будут удалены сначала без каких-либо действий, просто замените rm -rf в команде выше с echo, и она выведет только удаленные кандидаты.
Вот пример:
$ tree
.
├── dir1
│ ├── subdir1
│ │ ├── file1
│ │ └── file2
│ └── subdir2
│ ├── file1
│ └── file2
├── dir2
│ ├── subdir1
│ │ ├── file1
│ │ └── file2
│ └── subdir2
│ ├── file1
│ └── file2
└── dir_survive
├── subdir1
│ ├── file1
│ └── file2
└── subdir2
├── file1
└── file2
9 directories, 12 files
$ for x in *; do test "$x" != "dir_survive" && rm -rf "$x"; done
$ tree
.
└── dir_survive
├── subdir1
│ ├── file1
│ └── file2
└── subdir2
├── file1
└── file2
3 directories, 4 files
Чтобы ответить на часть вопроса «почему мои разрешения на разделение резервных копий установлены только для ROOT?» Наиболее вероятным ответом является то, что вы использовали sudo при создании резервной копии. Поступив таким образом, вы выполнили бы команду как root, а созданные файлы затем будут принадлежать root. Как вы создали резервные копии, кстати? Вы использовали tar, rsync, cp или другое приложение?
Чтобы ответить на часть вопроса «почему мои разрешения на разделение резервных копий установлены только для ROOT?» Наиболее вероятным ответом является то, что вы использовали sudo при создании резервной копии. Поступив таким образом, вы выполнили бы команду как root, а созданные файлы затем будут принадлежать root. Как вы создали резервные копии, кстати? Вы использовали tar, rsync, cp или другое приложение?