Respuestas:
En primer lugar, tenga en cuenta que, por lo general, no es necesario eliminar directorios vacíos. Algunos servicios o aplicaciones pueden incluso necesitar ciertos directorios para existir. Sé consciente de lo que estás haciendo.
Puede enumerar carpetas vacías con find
, cuando se ejecuta desde Terminal.app:
find . -type d -empty
De manera predeterminada, find
enumera los archivos y carpetas, pero aquí, lo -type d
restringe a directorios, y la -empty
opción muestra solo directorios vacíos. Esto repetirá todas las carpetas que descienden de su directorio de inicio ( o corto ). Para expandir esto a todo su sistema de archivos, use:/Users/your-username/
~
find / -type d -empty
Aquí, /
significa la raíz de su sistema de archivos Mac OS X. Por supuesto, también puede usar cualquier otro punto de partida, por ejemplo, su disco externo montado debajo ;/Volumes/your-disk-name
find /Volumes/your-disk-name -type d -empty
Ahora, si desea eliminar cualquier find
salida, simplemente agregue -delete
, así:
find . -type d -empty -delete
Nota: Esto no solicitará confirmación . Eliminará todos los directorios que pueda, es decir, aquellos en los que tenga permisos para eliminar. No serán trasladados a la basura sino desaparecidos para siempre. Si desea que se le pregunte antes de la eliminación, cambie el comando a algo como lo siguiente:
find . -type d -empty -exec rm -ri '{}' \;
illegal option -- t
type
y empty
parece no poder reconocer.
find
requiere una ruta, así que intente nuevamente con find . -type d
, no find -type d
(este último funciona para GNU find
).
find
de la misma manera que antes) y luego use el comando sugerido para eliminar los directorios vacíos restantes.
He creado un programa pequeño y gratuito que resuelve esto mejor:
http://www.macupdate.com/app/mac/52551/find-empty-folders
La ventaja de este programa es que también encuentra carpetas que aparentemente están vacías pero que contienen el archivo invisible ".DS_Store".
Y también le permite mover los elementos encontrados a la Papelera de inmediato.
find ~/Documents -type f -name 'Icon?' -print -delete;
Para promover este esfuerzo:
Creé un script que utilizo para limpiar mi carpeta de documentos de vez en cuando, ya que estoy camino al TOC y estoy cansado de estar sobrecargado de aplicaciones y me gusta la simplicidad.
Hice esto en un esfuerzo por mejorar y proporcionar una solución alternativa.
Por último, para el archivo de iconos de @ kenche, eso no parece existir en mi Mac ya que no he modificado los iconos de mi carpeta, pero puede hacerlo en el inspector. Al arrastrar una imagen hacia la parte superior izquierda, creará el Icon^M
archivo en ese directorio.
Para encontrarlos también puedes correr:
(¿Debería ser paranoico si encuentra un falso positivo y luego usa: ctrl+ v ctrl+ en mlugar de?
find ~/Documents -type f -name 'Icon?' -print;
# and to remove
find ~/Documents -type f -name 'Icon?' -print -delete;
Por favor, como @slhck dijo anteriormente: Algunos servicios o aplicaciones pueden incluso necesitar ciertos directorios para existir. Esto también se aplica a los archivos DS_Store & Icon, TENGA EN CUENTA lo que está haciendo. También tenga en cuenta: Este script no pedirá confirmación. Eliminará todos los directorios que pueda. es decir, aquellos en los que tiene permisos para eliminar. No serán trasladados a la basura sino desaparecidos para siempre.
#!/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;
Fin del guión.
El script se puede ver aquí en GitHub
Acerca de los íconos que representan archivos en tu Mac
¿Alguna forma de eliminar todas las carpetas que contienen solo .DS_Store recursivamente?
Busque carpetas y subcarpetas que solo contengan ".DS_Store"
Cómo encontrar todos los archivos de cero bytes en un directorio, incluidos los subdirectorios