Прежде всего, обратите внимание, что удаление пустых каталогов обычно не требуется. Некоторые службы или приложения могут даже нуждаться в определенных каталогах для существования. Будь в курсе того, что ты делаешь.
Вы можете получить список пустых папок findпри запуске из Terminal.app:
find . -type d -empty
По умолчанию findперечисляет файлы и папки, но здесь -type dограничивает его каталогами, а -emptyопция показывает только пустые каталоги. Это вернет все папки, исходящие из вашего домашнего каталога ( или короткие, ). Чтобы расширить это на всю вашу файловую систему, используйте:/Users/your-username/~
find / -type d -empty
Здесь /обозначает корень вашей файловой системы Mac OS X. Конечно, вы также можете использовать любую другую отправную точку, например, ваш внешний диск, смонтированный под ;/Volumes/your-disk-name
find /Volumes/your-disk-name -type d -empty
Теперь, если вы хотите удалить все findвыходные данные, просто добавьте -delete, вот так:
find . -type d -empty -delete
Примечание: это не будет запрашивать подтверждение . Это удалит все каталоги, которые он может, то есть те, где у вас есть разрешения для удаления. Они не будут перемещены в мусорное ведро, но ушли навсегда. Если вы хотите получить запрос перед удалением, измените команду на что-то вроде следующего:
Это дает мне вывод о illegal option -- ttypeи, emptyкажется, не сможет распознать.
AsTeR
1
@AsTeR Версия OS X findтребует пути, поэтому попробуйте еще раз find . -type d, а не find -type d(последний работает для GNU find).
Slhck
6
Хотя это работает, он, вероятно, не находит папки, которые содержат только скрытые файлы .DS_Store, делая их технически непустыми, но кажущимися пустыми для пользователя. Если пользователь хочет найти все папки, которые кажутся пустыми, те, которые он когда-то открыл в Finder, не будут найдены таким образом, потому что Finder добавил бы файл .DS_Store.
SuperTempel
Таким образом, нам может потребоваться сделать это в два этапа: сначала удалить файлы .DS_Store (это можно сделать findаналогично описанному выше), а затем использовать предложенную команду для удаления оставшихся пустых каталогов.
Герлос
6
Я сделал небольшую бесплатную программу, которая решает эту проблему лучше:
@kenchew Я полагаю, что вы ищете этоfind ~/Documents -type f -name 'Icon?' -print -delete;
JayRizzo
2
Чтобы продвинуть это усилие:
Я создал сценарий, который время от времени использую для очистки папки с документами, так как я слишком занят в OCD и устал от перегруженности APP, и мне нравится простота.
Я сделал это, чтобы улучшить и предложить альтернативное решение.
Наконец, для файла значков @ kenche, похоже, его нет на моем mac, так как я не изменил значки папок, но вы можете это сделать в инспекторе. После перетаскивания изображения в верхний левый угол он создаст Icon^Mфайл в этом каталоге.
Чтобы найти их тоже, вы можете запустить:
(Если вы не уверены, что если нашли ложный положительный результат, используйте: ctrl+ vctrl+ mвместо?)
find ~/Documents-type f -name 'Icon?'-print;# and to remove
find ~/Documents-type f -name 'Icon?'-print -delete;
ВАЖНЫЙ
Пожалуйста, как @slhck указано выше: некоторые службы или приложения могут даже нуждаться в определенных каталогах для существования. Это также относится к файлам DS_Store & Icon, ПОЖАЛУЙСТА, будьте в курсе того, что вы делаете. Также обратите внимание: этот скрипт не будет запрашивать подтверждение. Это удалит все каталоги, которые это может. то есть те, где у вас есть разрешения на удаление. Они не будут перемещены в мусорное ведро, но ушли навсегда.
BASH Script
#!/bin/bash# =============================================================================# MAC OSX HIGH SIERRA 10.13.4 (17E199)# Terminal: Version: 2.8.2 64-Bit (Intel): Yes# Terminal Location: /Applications/Utilities/Terminal.app# =============================================================================# Terminal CLEAN UP YOUR DOCUMENTS FOLDER.# =============================================================================# START WHAT IS BELIEVED TO BE EMPTY NOW.# =============================================================================
echo 'Searching Documents for empty folders...'
find ~/Documents-type d -empty;
# =============================================================================# SHOW & THEN REMOVE ALL MAC OS DS_Store FILES# =============================================================================
echo 'Searching Documents for DS_Store files...'
find ~/Documents-type f -name ".DS_Store"-print;
echo 'Removing DS_Store files...'
find ~/Documents-type f -name ".DS_Store"-print -delete;
# =============================================================================# SHOW & THEN REMOVE ALL MAC OS ZERO SIZED FILES# =============================================================================
echo 'Searching Documents for ZERO file sized files...'
find ~/Documents-type f -empty;
echo 'Removing ZERO file sized files...'
find ~/Documents-type f -empty -delete;
# =============================================================================# SHOW & THEN REMOVE Icon^M FILES# USE THE ? MARK FOR EASE OF USE YOU CAN ALSO SUB 'CTRL + V & CTRL + M' FOR ^M # =============================================================================
echo 'Searching Documents for Icon files...'
find ~/Documents-type f -name 'Icon?'-print;
echo 'Removing Icon files from Documents...'
find ~/Documents-type f -name 'Icon?'-print -delete;# SEEMINGLY THE SAME AS# find ~/Documents -type f -size 0 -print# find ~/Documents -type f -size 0 -print -delete
# =============================================================================# SHOWCASE NEW FOUND EMPTY FOLDERS# =============================================================================
echo 'Showcasing new result of existing and new found empty folders...'
find ~/Documents-type d -empty;
echo 'Deleting result of empty folders...'
find ~/Documents-type d -empty -delete;
echo 'Showcasing the removal of said, 'empty folders'...'
find ~/Documents-type d -empty;
Ответы:
Прежде всего, обратите внимание, что удаление пустых каталогов обычно не требуется. Некоторые службы или приложения могут даже нуждаться в определенных каталогах для существования. Будь в курсе того, что ты делаешь.
Вы можете получить список пустых папок
find
при запуске из Terminal.app:По умолчанию
find
перечисляет файлы и папки, но здесь-type d
ограничивает его каталогами, а-empty
опция показывает только пустые каталоги. Это вернет все папки, исходящие из вашего домашнего каталога ( или короткие, ). Чтобы расширить это на всю вашу файловую систему, используйте:/Users/your-username/
~
Здесь
/
обозначает корень вашей файловой системы Mac OS X. Конечно, вы также можете использовать любую другую отправную точку, например, ваш внешний диск, смонтированный под ;/Volumes/your-disk-name
Теперь, если вы хотите удалить все
find
выходные данные, просто добавьте-delete
, вот так:Примечание: это не будет запрашивать подтверждение . Это удалит все каталоги, которые он может, то есть те, где у вас есть разрешения для удаления. Они не будут перемещены в мусорное ведро, но ушли навсегда. Если вы хотите получить запрос перед удалением, измените команду на что-то вроде следующего:
источник
illegal option -- t
type
и,empty
кажется, не сможет распознать.find
требует пути, поэтому попробуйте еще разfind . -type d
, а неfind -type d
(последний работает для GNUfind
).find
аналогично описанному выше), а затем использовать предложенную команду для удаления оставшихся пустых каталогов.Я сделал небольшую бесплатную программу, которая решает эту проблему лучше:
http://www.macupdate.com/app/mac/52551/find-empty-folders
Преимущество этой программы в том, что она также находит папки, которые, по-видимому, пусты, но содержат невидимый файл ".DS_Store".
И это также позволяет вам сразу же перемещать найденные предметы в корзину.
источник
find ~/Documents -type f -name 'Icon?' -print -delete;
Чтобы продвинуть это усилие:
Я создал сценарий, который время от времени использую для очистки папки с документами, так как я слишком занят в OCD и устал от перегруженности APP, и мне нравится простота.
Я сделал это, чтобы улучшить и предложить альтернативное решение.
Наконец, для файла значков @ kenche, похоже, его нет на моем mac, так как я не изменил значки папок, но вы можете это сделать в инспекторе. После перетаскивания изображения в верхний левый угол он создаст
Icon^M
файл в этом каталоге.Чтобы найти их тоже, вы можете запустить:
ВАЖНЫЙ
BASH Script
Конец сценария.
Скрипт можно увидеть здесь на GitHub
Ссылки:
О значках, которые представляют файлы на вашем Mac
Любой способ удалить все папки, которые содержат только .DS_Store рекурсивно?
Найти папки и подпапки, содержащие только ".DS_Store"
Как найти все нулевые файлы в каталоге, включая подкаталоги
Икона? файл на рабочем столе OS X
источник