En este artículo, discutiremos cómo eliminar un archivo de cada directorio por encima del directorio de trabajo principal usando un script de shell en Linux. Para eliminar un archivo de un directorio usamos el comando rm en Linux/UNIX .
Sintaxis:
rm [OPTION]... [FILE]...
Usando el script de shell, tenemos que eliminar el archivo de entrada de cada directorio por encima del directorio de trabajo actual. El nombre del archivo se pasará como argumento. El siguiente diagrama muestra la estructura de árbol del directorio del escritorio.
En la imagen de arriba, actualmente estamos presentes en el directorio /Desktop.
- El directorio de trabajo actual se puede ver usando el comando pwd .
- En la estructura de árbol del diagrama anterior, tenemos un archivo GFGfile.txt. GFGfile.txt es un archivo de texto normal.
- Este archivo se encuentra en 4 directorios, a saber, GFG, AAAA, BBBB, CCCC.
- Ahora iremos al directorio “CCCC” usando el cddominio. Eliminaremos el otro GFGfile.txt sobre el directorio de trabajo actual. es decir, se eliminarán todos los GFGfile.txt excepto el archivo presente en el directorio “CCCC”.
Acercarse:
- Inicializar bandera = 1
- Inicializar homeDir como directorio ‘/home’
- Bucle hasta que la bandera se convierta en 0; de lo contrario, vaya al paso 13.
- vaya al directorio Anterior usando el comando “cd ..”.
- establecer el comando pwd para presentar el directorio de trabajo
- elimine el archivo usando el comando rm
- si el directorio de trabajo actual es igual al directorio de inicio, establezca un indicador en 0
- Ir al paso 7
- Deténgase
A continuación se muestra la implementación.
# check whether arguments are passed or not if [ $# -eq 0 ] then # if arguments are not passed then display this echo "pass the file name" # exit the program exit # end if fi # store the argument in fileName fileName=$1 # set flag flag=1 # set homeDir to home directory homeDir=/home # loop till flag becomes 1 while [ $flag -eq 1 ] do # go to previous directory cd .. # set pwdCommand to present directory pwdCommand=`pwd` # print pwd/filename echo "$pwdCommand/$fileName" # remove the file from present directory rm "$pwdCommand/$fileName" 2> /dev/null # set flag to 0 if we reach to /home directory if [ $pwdCommand = $homeDir ] then flag=0 # end if fi # end while done
Producción:
Para ejecutar el script de shell, use
./delFile.sh <filename>
Otorgue permiso de ejecución al script de shell usando:
chmod +x delFile.sh
Todos los archivos GFGfile.txt se han eliminado por encima del directorio de trabajo actual
Publicación traducida automáticamente
Artículo escrito por shantanujain18 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA