Shell Script para eliminar el archivo de tamaño cero usando If y For

Hay muchos archivos en nuestro sistema que no nos sirven como archivos temporales. Entonces, necesitamos borrar todos esos archivos, pero es muy ajetreado encontrar cada archivo y eliminarlos. Aquí crearemos un script que buscará automáticamente el archivo de tamaño cero y los eliminará a todos.

Antes de empezar, veremos cómo buscar directorios.

Buscando en el directorio actual para listar los directorios cuyo nombre comienza con mayúsculas.

# find . -type d -name "[A-Z]*" -ls

El enfoque del código:

  • Cree una interfaz de usuario de terminal que le pedirá el nombre del directorio en el que se eliminarán los archivos vacíos.
  • Luego verifique si el directorio de entrada existe o no usando operadores de archivos como «-d» explicado en el código.
  • Luego use un método para buscar en el directorio dado el archivo de tamaño cero. Aquí usaremos el comando «buscar» explicado anteriormente para hacer lo mismo.
  • Como ahora tenemos la lista de todos los archivos de tamaño cero, podemos eliminarlos usando for loop. Y así hemos logrado nuestro objetivo.

A continuación se muestra la implementación:

#!/bin/bash
echo "Enter the Directory for which all the zero sized files will be deleted:"

# input directory name.
read dirName
echo "For $dirName all 0 Sized files will be deleted."

# variable to store all the zero size files name.
# to store command output in variable we have two syntax 1. var=$(command) 2. var='command'

dire = $(find . -type f -size 0)

# first check if directory exist.
# -d is the file test operator which check the directory if it exits or not.Return true for existing.
if [ ! -d $dirName ];

then
echo "This is an invalid directory name or the Name directory does not exist."
else

# for loop iterate on the filenames with zero size.
for fileName in $dire
do

# to remove a file whose name starts with "-" we use option "--".
rm -- $fileName
done
fi

Cree algunos archivos vacíos en su directorio usando el comando táctil. El comando táctil toma un nombre de archivo como argumento.

# touch file1.txt file2.txt file3.txt

Da permiso para hacer que el script sea ejecutable.

# chmod 777 deleteFile.sh

Ejecute el script ahora y proporcione el nombre del directorio, aquí estamos usando el directorio actual (.).

#  ./deleteFile.sh

Publicación traducida automáticamente

Artículo escrito por hemusharma196 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 *