borrar-archivos-en-linux

Los usuarios de Linux suelen tener problemas al borrar archivos, como cuando necesitan hacer una limpieza y necesitan borrar todos los archivos de algún tipo de algún directorio. Con esto se refiere a borrar todos los archivos con excepciones, estos pueden ser archivos de cualquier tipo en específico. Hay muchas maneras de hacerlo, pero en esta guía se explicaran las más sencillas, como son los comandos rm y globignore.

Pero primero, para los usuarios quienes desconozcan la importancia del nombrado de archivos en Linux, se explicará de manera corta y sencilla ya que será de suma importancia para este proceso.

En Linux existen capas en los patrones, estas capas consisten en caracteres especiales (*, ?, [seq], [!seq]) para agrupar los distintos archivos. Por ejemplo: * se utiliza para leer los ceros y más caracteres, ? lee caracteres aislados, y así van. De esta manera hay 3 formas posibles para borrar estos archivos.

La primera es eliminar archivos mediante operadores de coincidencia de patrones ampliados. Estos patrones son*(pattern-list), ?(pattern-list), @(pattern-list) y !(pattern-list). Cada uno contiene uno o más nombres de archivos y están separados por el carácter |. Para utilizarlos hay que activar la opción extglob de la manera siguiente:

shopt -s extglob

  • Ahora se mostrarán los distitos comandos para efectuar la eliminación de archivos según el método deseado. Para eliminar todos los archivos de un directorio con la excepción de alguno de estos nombres, el comando a utilizar es: rm -v !(“nombre del archivo”).
  • Si lo que se desea es elminar todos con la excepción de archivo1 y de archivo2 se utiliza: $ rm -v !(“archivo1?|”archivo2”).
  • Si se quieren eliminar todos los archivos, pero no los .zip, se utiliza: rm -i !(*.zip).
  • Tambien se pueden borrar todos los archivos de un directorio a excepción de los archivos .zip y .odt. Para ello hay que usar: rm -v !(*.zip|*.odt).
  • Luego de haber borrado todos los archivos deseados, hay que desactivar la opción extglob. Para esto solo hay que usar el comando: shopt -u extglob.

Otra forma sencilla de borrar archivos en Linux es utilizando el comando find. Aunque el uso de este método es exlusivo para algunas opciones o en conjunto con el comando xargs, el ejemplo perfecto de esto es: $ find /directory/ -type f -not -name ‘PATTERN’ -print0 | xargs -0 -I {} rm [options] {}.

Por supuesto, también se explicarán sus demás usos. Siendo primero: find . -type f -not -name ‘*.gz’-delete, de esta manera se eliminarán todos los comandos que no sean .gz

Tambien se puede utilizar xargs para modificar la tarea de la siguiente manera: find . -type f -not -name ‘*gz’ -print0 | xargs -0  -I {} rm -v {}

Si lo que quieren es salvar todos los archivos, .gz, .odt y .jpg, se puede utilizar de la siguiente manera: find . -type f -not \(-name ‘*gz’ -or -name ‘*odt’ -or -name ‘*.jpg’ \) –delete.

Finalmente, la última opción para borrar archivos es usando la variable bash globignore. Obviamente, esta última forma solo funciona con bash. Con esta variable, se ignorarán todas las variables deseadas. El uso de este método es bastante simple, tan solo hay que colocarse en el directorio el cual se desea limpiar, y luego utilizar la variable globignore de la siguiente manera:

cd test

GLOBIGNORE=*.odt:*.iso:*.txt

De esta manera, todos los archivos se borrarán excepto los .odt, .iso y .txt. Ahora se deberá correr el comando rm para limpiar el directorio de la siguiente forma: rm -v *

Luego solo quedará desactivar la variable globignore con el comando unset GLOBIGNORE.

¡Nos encantaría saber tu opinión sobre este pequeño tutorial! ¿Has usado alguno de los comandos anteriormente, o conoces otro método diferente de este?

 

Fuente: artescritorio

¿Quién está en línea?

Hay 17754 invitados y ningún miembro en línea