find . | grep -v "excluded files criteria" | xargs rm
Тут буде перераховано всі файли в поточному каталозі, а потім перераховано всі ті, що не відповідають вашим критеріям (остерігайтеся відповідності імен каталогів), а потім видаліть їх.
Оновлення : на основі вашої редакції, якщо ви дійсно хочете видалити все з поточного каталогу, крім перелічених файлів, це можна використовувати:
mkdir /tmp_backup && mv textfile.txt backup.tar.gz script.php database.sql info.txt /tmp_backup/ && rm -r && mv /tmp_backup/* . && rmdir /tmp_backup
Це створить каталог резервного копіювання /tmp_backup
(у вас є кореневі привілеї, правда?), Перемістіть файли, які ви перерахували до цього каталогу, видалить рекурсивно все в поточному каталозі (ви знаєте, що ви в правильному каталозі, чи не так?), Перемістіть повернутися до поточного каталогу все, /tmp_backup
і, нарешті, видалити /tmp_backup
.
Я вибираю каталог резервного копіювання, що знаходиться в корені, тому що якщо ви намагаєтесь видалити все рекурсивно з кореня, у вашої системи виникнуть великі проблеми.
Звичайно, є більш елегантні способи зробити це, але цей досить простий.