Preguntar solo si son mas de 3 archivos
Otra opción es -I (con i mayúscula) en la que el comando rm solicita una confirmación para borrar archivos siempre y cuando sean mas de tres y solo pregunta una sola ves. Por ejemplo, si tenemos un comando rm para 2 archivo con esta opción funciona normalmente, es decir sin solicitar confirmación, mira este ejemplo:
$ rm -I lista-usuarios.data logsistema
Al dar enter el comando borra inmediatamente losr dos archivos, pero si tenemos un comando con la misma opción pero que va a borrar más de 3 archivos te solicitará una confirmación.
$ rm -I lista-usuarios.data logsistema nada002.txt rcurso.html rm: remove all arguments? Y
Con la opción -I y cuando sean mas de cuatro archivos, el comando rm borrará los archivos cuando se responda Y ( o S si tu sistema está en español) a la confirmación.
Ver que está ocurriendo con el comando rm
Como en casi todos los comandos linux, el comando rm tiene la opción -v que permite tener un mensaje para visualizar que ocurre cuando se ejecuta el comando, se utiliza el mismo ejemplo para ver la diferencia.
$ rm -Iv lista-usuarios.data logsistema nada002.txt rcurso.html rm: remove all arguments? y removed 'lista-usuarios.data' removed 'logsistema' removed 'nada002.txt' removed 'rcurso.html'
Responder Y a cualquier pregunta
Hay algunos archivos que el comando rm no borra antes de hacer un confirmación, por ejemplo aquellos archivos que tienen alguna protección contra escritura. Cuando esto ocurre y son muchos archivos se puede hacer uso del comando linux yes y de los Pipes (o tuberias) para responder a «todas»esas afirmaciones de forma automática en ves de responder cada archivo.
$ yes | rm *
Al ejecutar este comando te mostrará todas las preguntas de confirmación para borrar cada archivo pero el comado linux yes, mediante el pipe, lo responderá afirmativamente por ti, así que tu pantalla se podrá llenar de muchas lineas de texto, tantas como archivos haya en el directorio actual.
Como borrar un archivo llamado -iv
Es muy raro que los archivos tengan un nombre que empieza con un guión «-» pero es posible que ocurra y pero si el nombre del archivo es «-iv», bueno hay un parámetro especial que te ayuda cuando tengas que borrar un archivo te tenga un nombre así y el el doble guión «–«, para usarlo debes indicar los dos guiones antes del nombre del archivo para que el comando rm no lo confunda con opciones.
$ ls -rw-r--r-- 1 lm lm 0 Aug 26 13:44 -iv $ rm -- -iv
También puedes indicar el directorio actual en el nombre del archivo para evitar la confusión con los parámetros, así:
rm ./-iv
Borrar todo y de forma recursiva
Cuando quieres borrar archivos dentro de un directorio, o dentro de varios directorios el comando linux rm tiene una opción que permite hacer el borrado de archivos de manera recursiva. La opción -r o -R borrará los archivos del directorio local y los archivos dentro de estos, incluidos los directorios que existieran en la ruta. Te muestro un ejemplo para borrar todos los archivos cuando hay directorios.
$ rm * rm: cannot remove ‘con-permisos’: Is a directory rm: cannot remove ‘normal’: Is a directory
Pero cuando se utiliza la opción -r o -R elimina todos los directorios y sus archivos incluidos. Por eso al principio de este post te comentaba que el comando linux rm también puede ser usado para eliminar un directorio, sobre todo si tiene archivos dentro de el. Aquí te muestro el ejemplo del mismo caso con la opción -v para ver como se borran los directorios:
$ rm -rv * removed directory: ‘con-permisos’ removed ‘lista-usuarios.data’ removed ‘logsistema’ removed ‘nada002.txt’ removed ‘normal/lista-usuarios.data’ removed ‘normal/readme’ removed ‘normal/rcurso.html’ removed ‘normal/lista-usuarios2.data’ removed ‘normal/rcurso01.html’ removed ‘normal/nada02.txt’ removed ‘normal/readme01’ removed ‘normal/logsistema’ removed ‘normal/logsistem2a’ removed ‘normal/nada002.txt’ removed directory: ‘normal’ removed ‘rcurso.html’ removed ‘readme’
En negritas de marco los mensajes donde se confirma que los directorios han sido eliminados.
Forzar el borrado sin consultar
Los comandos anteriores pueden mostrar mensajes en ciertos casos, pero si se desea ejecurtar el borrado de archivos con las opciones anteriores y de manera explicita no deseas confirmación alguna se puede utilizar la opción -f
rm -f *.txt
O lo mas común es cuando quieres eliminar todos los archivos de forma explicita y sin confirmación, usa este comando con precaución y de preferencia no como root salvo que sea en extremo necesario. Advertencia nunca ejecutes este comando en el directorio / por que eliminará todos los archivos de tu sistema.
rm -rf *
El comando linux rm es uno de los comando básicos de linux y su importancia es mucha ya que nos permite mantener nuestro sistema en condiciones optimas pues nos permite borrar información no necesaria, liberar espacio en disco cuando se ocupa hacerlo, entre otras tareas importantes. Espero que este post te sea bastante útil y recuerda que si te ha gustado por favor compártelo en tus redes sociales.
Tu Servidor y Amigo
Sígueme en Twitter: @larmedina
Sígueme en Facebook: dame un like LuisMedinaMLM
By Bertoldo Suarez Perez 01/09/2016 - 1:02 am
Hola Luis M.
Te comento que al parecer el Panda Antivirus desde windows, me copió de manera muy extraña el fichero autorun.inf (vacuna) a la pendrive USB.
En esta tengo instalado el programa Easy2Boot (para arranque de otros SO), el cual copia su propio autorun para tarea propia. Caundo borré el de E2B, como que el Panda metió su autorun.inf de manera abrupta como nunca antes, ya que siempre lo había podido borrar desde Linux.
Pero, esta vez ha sido imposible, el comando rm no me ha servido: rm: no se puede borrar «autorun.inf»: Operación no permitida
El fichero ni siquiera es visible, es un fantasma, ni siquiera se muestra con el comando ls a ocultos. Solo puedes darte cuenta que está allí al intentar copiar un autorun.inf allí, ya que no lo deja hacer. Y con el comando more autorun.inf, que muestra su contenido: caacaa, un texto bastante corto puedes dar cuenta.
Pude copiar el fichero en cuestión a otro directorio con el comando copy.
Me pregunto. Si Panda pudo hacer esto, copiar un fichero invisible y no eliminable desde Linux, entonces, para otros asuntos maliciosos puede fallar la seguridad.
By Terminales posibles y tangibles. – Platohedro 04/04/2016 - 4:36 pm
[…] ejercicios básicos de manipulación de directorios, creación (mkdir), movimiento (mv) remover (rm) cambio (cd), listado de directorios (ruta del directorio$ ls ), con este ejercicio se fueron […]