¿Cuál es la forma más fácil/mejor de encontrar y eliminar archivos vacíos (cero bytes) usando solo herramientas nativas de Mac OS X?Eliminación de archivos vacíos (cero bytes)
Respuesta
bastante fácil:
find . -type f -size 0 -exec rm -f '{}' +
para ignorar cualquier archivo que tenga xattr contenido (suponiendo que la aplicación MacOS find
):
find . -type f -size 0 '!' -xattr -exec rm -f '{}' +
Dicho esto, tenga en cuenta que muchos xattrs no son particularmente útiles (Por ejemplo, com.apple.quarantine
existe en todos los archivos descargados).
find /path/to/stuff -empty
Si eso es la lista de archivos que está buscando a continuación, hacer que el comando:
find /path/to/stuff -empty -exec rm {} \;
Tenga cuidado! ¡No habrá forma de deshacer esto!
Es mejor usar + que; si tiene un hallazgo actual, de esa manera actúa como lo haría xargs si estuviera en la tubería. –
Uso:
find . -type f -size 0b -exec rm {} ';'
con todas las otras variantes posibles para limitar lo que se elimina.
Puede disminuir el número potencialmente enorme de las horquillas al ejecutar/bin/rm por:
find . -type f -size 0 -print0 | xargs -0 /bin/rm -f
El comando anterior es muy portátil, que se ejecuta en la mayoría de las versiones de Unix y no sólo a las cajas de Linux, y en las versiones de Unix que se remonta a décadas. Para largas listas de archivos, se pueden ejecutar varios comandos /bin/rm
para evitar que la lista sobrepase el límite de longitud de la línea de comando.
Un efecto similar se puede lograr con menos a escribir en los sistemas operativos más recientes, utilizando un +
en find
para reemplazar el uso más común de xargs
en un estilo todavía se presta a otras acciones además de /bin/rm
. En este caso, find
manejará la división de listas de archivos realmente largas en comandos separados /bin/rm
. El {}
se cita habitualmente para evitar que el shell le haga algo; las cotizaciones no siempre son necesarios, pero las complejidades de la cáscara de citación, es demasiado complicado para cubrir aquí, así que en caso de duda, incluir los apóstrofes:
find . -type f -size 0 -exec /bin/rm -f '{}' +
En Linux, los enfoques más breves suelen estar disponibles utilizando -delete
. Tenga en cuenta que find
reciente -delete
primario se implementa directamente con unlink
(2) y no engendra un millón de comandos /bin/rm
, o incluso los pocos que xargs
y +
hacen. Mac OS find
también tiene los primarios -delete
y -empty
.
find . -type f -empty -delete
Para pisar archivos vacíos (y recién vaciadas-) - directorios, así - muchos moderno, que consta de Linux pueden utilizar este enfoque eficiente:
find . -empty -delete
+1 Esta es la mejor respuesta. –
Esto _ mejora_ la portabilidad, se concede, pero 'find -exec ... {} +' está disponible más allá de Linux. Inmediatamente, tanto Solaris 11 como OS X son compatibles con esta reciente adición a la especificación POSIX para find (agregada en el número 6 de 1003.1). –
La sintaxis '+' es menos portátil, pero aún bastante portátil. Definitivamente no está disponible en un número de * old * Unixen que * do * have 'xargs'. 'xargs' también es mucho más flexible que el' + ', aunque la frecuencia de necesidad de esa flexión extra es muy baja. Agregaré la forma '+', sin embargo. –
- 1. Eliminación de directorios no vacíos en Java
- 2. Eliminación de nodos vacíos de HTML
- 3. eliminación de elementos vacíos finales en Python
- 4. Almacenamiento en Azure: archivos cargados con tamaño cero bytes
- 5. Elementos vacíos en matriz de bytes C#
- 6. Rails 3, Apache y pasajero, send_file envía archivos de cero bytes
- 7. Eliminación de marcas de orden de bytes (BOM) mediante Emacs
- 8. ¿Los archivos de 0 bytes son realmente 0 bytes?
- 9. Eliminar directorios vacíos utilizando msbuild
- 10. Eliminación de archivos temporales creados por pdf()
- 11. Eliminación de archivos y carpetas bloqueados
- 12. eliminación de viejos archivos usando crontab
- 13. Eliminación de archivos creados con FileOutputStream
- 14. Eliminación de archivos en el servidor remoto
- 15. Eliminación de archivos utilizando el comando rm
- 16. Eliminación de archivos usando Git/GitHub
- 17. Eliminación de archivos al desinstalar WiX
- 18. Eliminación de archivos temporales después del uso
- 19. Cómo deshacer la eliminación de archivos intermedios
- 20. Eliminación de varios archivos con el comodín
- 21. Eliminación de ciertos archivos usando Python
- 22. ¿Cómo manejar valores vacíos en archivos de configuración con ConfigParser?
- 23. Eliminación recursiva de elementos vacíos y subcampos de una matriz multidimensional
- 24. Git: cómo ignorar los archivos ocultos/archivos de puntos/archivos con nombres de archivos vacíos a través de .gitignore?
- 25. Eliminando todos los búferes vacíos en VIM
- 26. ¿Cómo manejas los archivos de entrada vacíos o faltantes en Apache Pig?
- 27. Archivo de rastreo de Android creado pero cero bytes de largo
- 28. Eliminación de archivos usando la GUI de Git
- 29. Eliminación de archivos de forma permanente y segura en CentOS
- 30. Cómo escribir un decodificador de archivos JPEG desde cero
aclarar por favor! un archivo que está vacío, todos los archivos vacíos? ¿Qué has intentado? ¿Dónde están los errores? – hop
Un comentario a mi respuesta aclaró la pregunta; actualizando apropiadamente. –
Gracias Charles Duffy. Perdón por mi mal inglés: p – Bank