Shell Script para eliminar archivos de tamaño cero de un directorio

Un archivo de tamaño cero es un archivo que no contiene datos y tiene una longitud de 0. También se denomina archivo de cero bytes. Las transferencias incompletas pueden ser responsables del archivo de tamaño cero. Puede crear un archivo de tamaño cero intencionalmente ejecutando el siguiente comando en la terminal:

touch zero_sized_file_name

Producción:

creating zero sized file sin linux

archivo de tamaño cero

Enfoques :

  • Ingrese el nombre del directorio y verifique si el directorio existe en la carpeta/directorio actual.
  • Use for loop para recorrer cada archivo y verificar su tamaño.

Enfoque 1:

Pasos incluidos:

  1. En primer lugar, estamos tomando el nombre del directorio como entrada del usuario mediante el comando de lectura .
  2. Para verificar si el nombre del directorio ingresado por el usuario realmente existe, estamos usando la instrucción if [-d “$directory_name”] . Aquí estamos usando la declaración if con el indicador -d , devolverá verdadero si el directorio existe.
  3. Si el directorio existe, vamos a usar la declaración de bucle ( for loop ) para iterar sobre los archivos y verificar su tamaño usando -size 0,  si el archivo tiene un tamaño cero, ingresamos al bucle y eliminamos el archivo usando el comando rm. rm (eliminar) se utiliza para eliminar los archivos/carpetas.
  4. Después de eso, mostramos que los archivos se eliminaron con éxito usando el comando echo . echo es como una declaración de impresión, se usa para mostrar cosas en la pantalla.
  5. Si el directorio no existe, mostraremos el directorio que no existe.
#! /bin/bash

# Taking directory name as input from user
echo -n "Enter name of the directory : "
read directory_name

# If directory exists it will print 
# Directory exits 
# and remove the zero-sized files.
# Or if directory doesn't exists it will print 
# Directory does not exists.
if [ -d "$directory_name" ];
then
    echo "Directory exist"
        for i in `find $directory_name -size 0`
        do
            rm $i    
            echo "Zero-sized files are Successfully deleted"    
        done
else
    echo "Directory does not exist"

fi

Enfoque 2:

Pasos incluidos:

  1. Primero, tenemos que tomar el nombre del directorio como entrada del usuario usando el comando de lectura y almacenarlo en la variable nombre_directorio .
  2. Para verificar si el nombre del directorio ingresado por el usuario realmente existe, estamos usando la instrucción if [-d “$directory_name”] . Aquí estamos usando la declaración if con el indicador -d , devolverá verdadero si el directorio existe.
  3. Si el directorio existe, usaremos la declaración de bucle (for loop) para iterar sobre los archivos y verificar su tamaño usando -size 0 , tan pronto como encontremos un archivo que cumpla con nuestros requisitos (es decir, un archivo con tamaño cero), usando el argumento -delete eliminaremos ese archivo en particular de ese directorio. Hacemos lo mismo hasta que no quede ningún archivo con tamaños cero.
  4. Después de eso, mostramos que los archivos se eliminaron con éxito usando el comando echo . echo se usa para mostrar cosas en la pantalla.
  5. Si el directorio no existe, simplemente devolvemos ese directorio que no existe usando el comando echo.
#! /bin/bash

# Taking directory name as input from user
echo -n "Enter name of the directory : "
read directory_name

# If directory exist it will print 
# Directory exits 
# and remove the zero-sized files.
# Or if directory doesn't exist it will print 
# Directory does not exist.
if [ -d "$directory_name" ];
then
    echo "$directory_name Directory exist"
        for i in `find $directory_name -size 0 -delete`
        do
        echo ""
        done
        echo "Zero-sized files are Successfully deleted"    
else
    echo "$directory_name does not exist"

fi
 

Producción :

zero_sized_files

Antes 

script to delete zero sized file

Después de usar el script

Publicación traducida automáticamente

Artículo escrito por amnindersingh1414 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *