Напевно, якось ви переконалися, що у вас є файл марного типу в декількох папках, який займає мало місця, але ви просто не хочете його мати на своєму комп’ютері. Наприклад, у macOS створюються деякі файли .DS_Store які зберігають інформацію про піктограму папки, її розмір і положення, а в Windows є desktop.ini, які є еквівалентними. Що робити, якщо у нас є каталог, повний підкаталогів, і ми хочемо видалити ті чи інші типи файлів? Що нам потрібно зробити, це рекурсивно стирати Кожен з них.
Це те, що ми можемо робити з усіма типами файлів. Наприклад, якщо у нас є жорсткий диск, повний музики, у нас є програвач, який завантажив обкладинки, і ми не хочемо, щоб їх зберігали, ми можемо використовувати ту саму команду, яку ми докладно описамо нижче, щоб видалити їх. Звичайно, беручи до уваги, що ми збираємось рекурсивно видаляти файли каталогів та їх підкаталоги за допомогою терміналу, і що вони будуть назавжди втрачені, не завадить бути обережним та / або зробити тест перед тим, як видалити все, що ми хочемо видалити.
Рекурсивно видаляти файли цього типу з терміналу
Команди для прикладів файлів macOS .DS_Store будуть такими:
cd ruta/a/directorio find . -name '*.DS_Store' -type f -delete
З попередніх команд перша помістить нас у папку, з якої ми хочемо розпочати, тобто ту, яка містить усі файли .DS_Store, які ми хочемо видалити. Другий - це той, який видалить усі файли .DS_Store з перша папка та її підпапки або довідники. Якщо ми хочемо видалити фотографії з раніше згаданих музичних папок, ми повинні вставити тип розширення між лапками, наприклад, "* .jpg".
Якщо чесно на 100%, це те, що я буду робити того дня, коли перестану використовувати Cantata як музичний програвач за замовчуванням. Cantata створює та приховує інформаційні файли з такою ж назвою, як і пісні, що мають крапку та низьку смужку перед собою (наприклад. Коли мені це буде потрібно, команда, якою мені доведеться скористатися, буде знайти. -назви '._ *' -типу f -видалити.
Цей маленький посібник допоміг вам рекурсивно видаляти файли з терміналу?
Дякую, але у вашому коді є помилка. Вам потрібно використовувати регулярний вираз "*", тобто "* .DS_STORE". Рекомендую виправити це. Ну, а тим, хто менше знає bash, код, який ви дали, не підійде. Вітаю!