Hoy he intentado borrar muchos archivos en Linux mediante la terminal por lo que he utilizado el comando rm.
Al utilizar el comando rm (remove) quería utilizar unos archivos por su nombre que siguiera un patrón específico y por lo tanto he utilizado modificadores, en este caso el * (cualquier carácter en esa posición y en adelante).
Los nombres de los archivos tenían este formato:
TIPO_NOMBRE_NUMEROSERIE_FECHA_HORA.txt
y yo queria borrar todos los archivos del año 2023 por lo que he utilizado el siguiente comando:
rm WEB_*_*_23*_*.txt
Pero al ejecutarlo me ha dado el error «Demasiados argumentos».
Este error puede darse porque hay demasiados archivos a eliminar así que hay que utilizar otras formas de hacerlo.
Formas de eliminar muchos archivos a la vez mediante modificadores
Mediante un Script
Puede crear un script en bash utilizando un bucle for de la siguiente forma
for file in WEB_*_*_23_*.txt; do
[ -e "$file" ] && rm "$file"
done
Usar find
También puedes utilizar el comando find, que maneja mejor un grán número de archivos.
find . -name 'WEB_*_*_23*_*.txt' -exec rm {} +
Limitar el número de archivos
Si prefieres eliminar los archivos en partes, puedes usar ls y xargs :
ls WEB_*_*_23*_*.txt | xargs -n 100 rm
Esto eliminará los archivos en grupos de 100. Puedes ajustar en número según sea necesario.
A tener en cuenta antes de eliminar archivos
Ten en cuenta que si no controlas bien los modificadores, puedes eliminar archivos que no querias por lo que siempre en recomendable realizar una previsualización de lo que vas a borrar con el comando ls.
ls WEB_*_*_23*_*.txt
Con este comando visualizaras los archivos que hace referencia al patrón dado y así verificar si son los archivos que necesitas borrar o se te ha escapad alguno.