tagger tag mp3tag mac kid3 editar easytag linux filesystems delete-file ls rm

tag - Archivo de eliminación de Linux con tamaño 0



mp3tag ubuntu (8)

En Linux, el comando stat (1) es útil cuando no necesita encontrar (1):

(( $(stat -c %s "$filename") )) || rm "$filename"

El comando stat aquí nos permite simplemente obtener el tamaño del archivo, ese es el -c %s (ver las páginas man para otros formatos). Estoy ejecutando el programa de estadísticas y capturando su salida, ese es el $( ) . Este resultado se ve numéricamente, ese es el exterior (( )) . Si se da cero para el tamaño, eso es FALSO, por lo que se ejecuta la segunda parte del OR. Non-zero (archivo no vacío) será TRUE, por lo que la rm no se ejecutará.

Esta pregunta ya tiene una respuesta aquí:

¿Cómo elimino un determinado archivo en Linux si su tamaño es 0. Quiero ejecutar esto en un crontab sin ningún script extra?

l filename.file | grep 5th-tab | not eq 0 | rm

¿Algo como esto?


Esto eliminará todos los archivos en un directorio (y más abajo) que son de tamaño cero.

find /tmp -size 0 -print0 |xargs -0 rm --

Si solo quieres un archivo en particular;

if [ ! -s /tmp/foo ] ; then rm /tmp/foo fi


Esto funciona para BSD simple, por lo que debe ser universalmente compatible con todos los sabores. Below.eg en pwd ( . )

find . -size 0 | xargs rm


Para buscar y eliminar archivos vacíos en el directorio y los subdirectorios actuales:

find . -type f -empty -delete

-type f es necesario porque también los directorios están marcados para ser del tamaño cero.

El punto (directorio actual) es el directorio de búsqueda inicial. Si tiene GNU find (p. Ej., No Mac OS), puede omitirlo en este caso:

find -type f -empty -delete

De GNU find documentación :

Si no se especifican archivos para buscar, se usa el directorio actual (.).


Para una eliminación no recursiva (usando du y awk):

rm `du * | awk ''$1 == "0" {print $2}''`


Puede usar el comando find para hacer esto. Podemos hacer coincidir archivos con -type f , y unir archivos vacíos usando -size 0 . Entonces podemos eliminar las coincidencias con -delete .

find . -type f -size 0 -delete


querrías usar find :

find . -size 0 -delete


find . -type f -empty -exec rm -f {} /;