Bienvenidos a este capítulo de este Curso de Linux para Hackers – Eliminar Archivos desde la Shell. Comparte este articulo y síguenos para recibir más capítulos, guías y cursos gratis.

Esta guía es parte de un curso mucho más grande en donde te enseñamos a convertirte en hacker de 0 a 100. Desde los conocimientos más básicos hasta conseguir empleo.

En esta guía veremos desde cero un tema tan amplio como es Linux y lo haremos desde el punto de vista del hacking y la ciberseguridad.

Para saber más comente a continuación, respondemos todos y cada uno de los comentarios.

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Lo que aprenderás en este artículo:

  1. Diferencias entre mover, copiar y eliminar archivos en Linux.
  2. Cómo usar el comando mv para mover y renombrar archivos y directorios.
  3. Cómo usar el comando rm para eliminar archivos y directorios.
  4. Opciones avanzadas de los comandos mv y rm para evitar sobrescrituras accidentales o forzar eliminaciones.
  5. Cómo utilizar el comando rm de manera segura y evitar errores graves.

Mover versus eliminar y copiar

El traslado de archivos en un sistema de archivos similar se implementa básicamente de manera diferente a la copia del archivo y la eliminación del original. Se incluye un nuevo enlace en el nuevo directorio y el actual se elimina en las plataformas que no admiten la llamada al sistema de cambio de nombre. No se accede a los datos del archivo.

Un movimiento original es mucho más rápido en comparación con el proceso de copiar y mover. El número i del archivo no cambia. No se necesita ningún permiso para leer el archivo que se está transportando, ya que solo se modifican los datos de catalogación como resultado del “movimiento” . Dado que se están modificando los directorios de destino y de origen, se están estableciendo entradas en el directorio de destino y se están eliminando del directorio de origen.

En ambos directorios, se necesita permiso de “escritura” para finalizar el traslado. La transferencia de archivos de un sistema de archivos a otro puede fallar por completo o puede realizarse automáticamente como una función atómica de copia y eliminación. Los detalles originales dependen de la implementación.

 Linux rm | Eliminar archivo de Linux

El comando “rm” significa remove (eliminar). Este comando se utiliza para eliminar un archivo. La línea de comandos no tiene una papelera de reciclaje o papelera a diferencia de otras GUI para recuperar los archivos. Por lo tanto, tenga mucho cuidado al utilizar este comando. Una vez que haya eliminado un archivo, se eliminará de forma permanente.

rm es un comando general en Unix y otros sistemas similares a Unix. Se utiliza para eliminar objetos como enlaces simbólicos, directorios y archivos de computadora de los sistemas de archivos. Además, elimina algunos archivos especiales como sockets, tuberías y nodos de dispositivos, al igual que el comando del en Microsoft Windows y MS-DOS. El comando también está disponible dentro del shell EFI.

Descripción general de rm

El comando rm elimina referencias de objetos del sistema de archivos con la ayuda de la llamada al sistema unlink, en la que los objetos pueden haber tenido dos o más referencias (por ejemplo, un archivo que usa dos nombres), y los objetos se eliminan solo si se ha eliminado cada referencia y los programas aún no han abierto identificadores para los objetos.

  • Permite escenarios en los que un programa puede iniciar un archivo, eliminarlo inmediatamente del sistema de archivos y usarlo en un espacio limitado, sabiendo que el espacio del archivo se recuperará después de que el programa se cierre, incluso cuando se cierre bloqueando.
  • En general, el comando no daña los datos del archivo porque su objetivo es desvincular referencias. Además, el espacio del sistema de archivos liberado aún puede incluir datos sobrantes del archivo eliminado. Puede ser una consideración de seguridad en algunos casos, y las versiones reforzadas a veces permiten borrar los datos porque se corta el último vínculo, y hay programas como srm y shred disponibles específicamente para brindar funciones de borrado de datos.
  • El comando rm normalmente no permiten la recuperación de archivos eliminados mediante un método como la papelera de reciclaje, por lo que el hábito de los usuarios de incluir el comando rm es un tipo de contenedor para restringir la eliminación involuntaria de archivos.
  • Existen algunas utilidades de recuperación que intentarán recrear el índice y, si las partes no se reutilizan, pueden recuperar el archivo.

Sintaxis:

rm  < nombre de archivo >  

El comando rm elimina el archivo nombrado después de que se incluyan las opciones. Los usuarios pueden utilizar una ruta relativa o una ruta completa del archivo para nombrar los archivos que se eliminarán. El comando rm no elimina un directorio de forma predeterminada. El comando rm foo elimina el archivo “foo” del directorio actual del usuario.

El comando rm puede cubrirse con una función de alias de shell del comando rm -i para ignorar la eliminación accidental de archivos. Aún así, si un usuario desea eliminar una gran cantidad de archivos sin aprobación, puede configurar el indicador -i incluyendo el indicador -f manualmente. Este enfoque, lamentablemente, produce hábitos peligrosos de uso de comodines, lo que provoca su versión de eliminación accidental.

El comando rm -rf se utiliza a menudo en anécdotas y bromas sobre desastres de Unix, incluida la pérdida de varios archivos durante la creación de la película Pixar y Toy Story 2. La versión rm -rf / del comando haría que todos los archivos accesibles mediante el sistema de archivos actual se eliminaran a través de la máquina si lo ejecuta un superusuario.

En el directorio principal, para eliminar un archivo se necesita el permiso de escritura en la mayoría de los sistemas de archivos. Para eliminar un directorio, se debe eliminar recursivamente cada uno de sus contenidos. Es necesario que se contengan recursivamente los permisos de ejecución y escritura para ese directorio y el directorio que no está vacío. Los permisos de lectura son necesarios para especificar el contenido del directorio para eliminarlos. A veces, esto provoca una situación extraña en la que no se puede eliminar un directorio que no está vacío porque no se tiene el permiso de escritura, por lo que no se puede eliminar su contenido; aunque si un directorio similar estuviera vacío, se podría eliminar.

Ejemplo:

rm carlos.py

En la instantánea anterior, hemos eliminado el archivo carlos.py de forma permanente con la ayuda del comando ‘rm’. Sin ninguna opción, el comando rm normalmente se utiliza para eliminar archivos ordinarios:

Opciones de rm

OpciónDescripción
rm *extensionSe utiliza para eliminar archivos que tienen la misma extensión.
rm -r o RPara eliminar un directorio de forma recursiva.
rm -iEliminar un archivo de forma interactiva.
rm -rfEliminar un directorio a la fuerza.
-F-f significa forzar. Ignora los archivos que no existen y anula las solicitudes de confirmación. Sin embargo, no eliminará archivos de un directorio cuando esté protegido contra escritura.
-v-v significa verbose. Imprime lo que está haciendo el comando rm en la terminal.
-d-d significa directorio. Elimina un directorio vacío y funciona solo si el directorio nombrado está vacío.
–one-file-systemSolo elimina archivos en un sistema de archivos similar al argumento y evitará el sistema de archivos montado.

rm *extension

Este comando se puede utilizar para eliminar todos los archivos que terminen con la misma extensión como .pdf, .txt, .odt, .png, etc.

Sintaxis:

rm * < extensión >  

Ejemplo:

rm *.txt  

Aquí, estamos eliminando dos archivos que tienen la misma extensión ‘.txt’. Echemos un vistazo.

Como puedes ver, se han eliminado los archivos carlos.txt,  hacker.txt y laprovittera.txt . Puedes eliminar todos los archivos que quieras que tengan la misma extensión.

rm -r

El comando rm ignorará los directorios que se le pida eliminar. Para eliminar un directorio, utilice una opción recursiva, por ejemplo, las opciones -r o -R. Tenga cuidado ya que estas opciones son “recursivas”, y eliminarán todos los archivos y todos los subdirectorio:

Con la opción ‘-r’ de rm, puedes eliminar un directorio que contenga subdirectorios, por lo que no necesitas eliminar los subdirectorios manualmente.

Sintaxis:

rm -r  < nombre_directorio >  

Ejemplo:

rm -r hackers 

Mira el ejemplo anterior, hemos eliminado el directorio hackers que tenía múltiples subdirectorios.

Advertencia

El comando rm elimina los archivos de forma permanente.

rm -i

La opción ‘i’ significa ‘interactividad’. Antes de eliminar un archivo, te preguntará si quieres eliminarlo o no. Para eliminar un archivo, utiliza el comando:

 rm -i

Ejemplo:

rm -i carlos.php

A continuación te damos un ejemplo, échale un vistazo.

y para eliminar un directorio use el comando:

 rm -ri  

Como puede ver, el archivo ‘carlos.php’ se ha eliminado con el comando rm -i y el directorio ‘hackers’ se ha eliminado con el comando rm -ri.

Linux rm -rf

El comando rm -rf de Linux elimina un directorio de forma forzada. Esto significa que un archivo o directorio se eliminará de todos modos, incluso si tiene permiso de solo lectura.

Para eliminar un archivo de forma forzada, utilice el comando:

rm -f   nombre de archivo >  

Para eliminar un directorio de forma forzada, utilice el comando:

rm -rf   nombre del directorio >  

Veamos un ejemplo de cómo eliminar un directorio.

Como podemos ver -f no podemos eliminar una carpeta si no usamos -r. Al usar -r podemos eliminar una carpeta aunque tenga acceso de solo lectura, por lo que solicita permiso para eliminarlo o no. Sin embargo, el archivo se eliminará después de obtener el permiso, como se muestra a continuación.

Pero al dar el comando rm -rf eliminará ese archivo en particular que tiene acceso de solo lectura sin pedir permiso.

El comando rm tiene más opciones que puedes explorar

 rm --help

También  te recomendamos consultar las páginas man para este comando:

 man rm

NOTA:  NO HAGAS ESTO!
¿Recuerdas este chiste? ¿Ahora cobra sentido verdad? Si bien esto es solo un chiste es técnicamente posible. Trabajar con alias da muchas posibilidades.

A tener en cuenta

Los permisos pueden afectar a los comandos de administración de archivos, como el comando rm.

Para eliminar un archivo dentro de un directorio, el usuario debe tener permiso de escritura y ejecución en ese directorio. Normalmente, los usuarios ordinarios solo tienen este tipo de permiso en su directorio principal y subdirectorios correspondientes.

Resumen y Puntos clave:

  1. Mover vs. Eliminar y Copiar archivos en Linux Mover un archivo dentro del mismo sistema de archivos es más rápido que copiar y eliminar, ya que simplemente cambia las entradas en el directorio sin copiar los datos. Esto significa que no se accede a los datos del archivo, y el número de inodo no cambia. Al mover un archivo a otro sistema de archivos, el comando mv realiza una copia y luego elimina el archivo original. Este proceso es más lento y depende de los permisos de lectura y escritura del sistema.
  2. Comando mv para mover archivos y directorios El comando mv permite mover archivos y directorios a otra ubicación o renombrarlos en el mismo directorio. El número de inodo permanece igual, ya que solo cambia la ubicación del archivo. Sintaxis básica:
    • mv <origen> <destino>
      Ejemplo:
    • mv archivo.txt /ruta/nueva/
      Mueve archivo.txt a la nueva ruta especificada.
  3. Renombrar archivos con mv Usar mv dentro del mismo directorio también sirve para renombrar archivos. Ejemplo:
    • mv archivo_viejo.txt archivo_nuevo.txt
      Cambia el nombre del archivo de archivo_viejo.txt a archivo_nuevo.txt.
  4. Mover directorios completos con mv Mover un directorio funciona igual que con archivos. Si se utiliza mv en un directorio, todo su contenido se mueve junto con él. Si el destino ya existe y es un directorio, el directorio se colocará dentro del destino. Ejemplo:
    • mv carpeta1 /ruta/nueva/
  5. Comando mv con opción -i para evitar sobrescrituras La opción -i de mv solicita confirmación antes de sobrescribir un archivo en el destino. Ejemplo:
    • mv -i archivo.txt /ruta/nueva/
      Si archivo.txt ya existe en el destino, se te pedirá confirmación para sobrescribirlo.
  6. Eliminar archivos con el comando rm El comando rm se utiliza para eliminar archivos permanentemente. No hay papelera o forma fácil de recuperar archivos una vez eliminados, por lo que debes tener mucho cuidado al usarlo. Sintaxis básica:
    • rm <archivo>
      Ejemplo:
    • rm archivo.txt
      Elimina archivo.txt de manera permanente.
  7. Eliminar directorios con rm -r El comando rm no elimina directorios de forma predeterminada. Para eliminar un directorio y todo su contenido, se debe usar la opción -r o -R (recursiva). Ejemplo:
    • rm -r directorio/
      Esto eliminará el directorio y todos los archivos y subdirectorios que contenga.
  8. Eliminar archivos de manera interactiva con rm -i La opción -i pide confirmación antes de eliminar cada archivo, lo cual es útil para evitar eliminar archivos por error. Ejemplo:
    • rm -i archivo.txt
      Este comando te pedirá que confirmes la eliminación de archivo.txt.
  9. Eliminar archivos o directorios de manera forzada con rm -f y rm -rf La opción -f (force) elimina archivos sin pedir confirmación, incluso si tienen permisos de solo lectura. La combinación rm -rf se usa para eliminar un directorio completo y su contenido sin confirmación. Ejemplo:
    • rm -rf directorio/
      Elimina el directorio y todo su contenido sin preguntar.
  10. Eliminar todos los archivos de una extensión con rm *.ext Puedes usar el comando rm con comodines para eliminar todos los archivos de una extensión específica. Ejemplo:
rm *.txt

Elimina todos los archivos .txt en el directorio actual.

  1. Seguridad al usar rm El comando rm elimina archivos de manera permanente, por lo que es esencial tener cuidado. Es posible usar alias para hacer que el comando rm siempre sea interactivo, o usar utilidades como trash-cli que imitan el comportamiento de una papelera de reciclaje. Ejemplo con alias:
alias rm='rm -i'

Esto convierte el comando rm en interactivo por defecto.

  1. Advertencia con rm -rf /** El comando rm -rf / es notoriamente peligroso porque elimina todo el contenido accesible del sistema de archivos, lo que puede destruir el sistema operativo si se ejecuta por error. Por esta razón, muchas distribuciones modernas de Linux incluyen protecciones contra su ejecución accidental.

Conclusión:

El comando mv es esencial para mover y renombrar archivos, mientras que rm es la herramienta principal para eliminarlos permanentemente. Ambos comandos son potentes y tienen opciones para manejar confirmaciones, sobrescrituras y eliminaciones forzadas. Es crucial usarlos con cuidado, especialmente al eliminar archivos o directorios, ya que los archivos eliminados no pueden recuperarse fácilmente.

Pon en práctica lo aprendido

Ahora pon a prueba lo aprendido con estas preguntas y ejercicios.

Preguntas sobre mover versus eliminar y copiar archivos

  1. ¿Cuál es la principal diferencia entre mover un archivo dentro del mismo sistema de archivos y copiarlo y luego eliminarlo?
  2. ¿Por qué mover un archivo dentro del mismo sistema de archivos es más rápido que copiarlo y luego eliminarlo?
  3. ¿Qué permisos se requieren para mover un archivo en Linux?
  4. ¿Qué sucede con el número de inodo de un archivo al moverlo dentro del mismo sistema de archivos?
  5. ¿Qué opción puedes usar con el comando mv para evitar sobrescribir archivos sin pedir confirmación?
  6. ¿Cuál es el comando para eliminar un archivo de forma permanente en Linux?
  7. ¿Qué hace la opción -r en el comando rm?
  8. ¿Qué significa el comando rm -rf / y por qué es peligroso?
  9. ¿Qué opción del comando rm puedes usar para que solicite confirmación antes de eliminar cada archivo?
  10. ¿Cómo puedes eliminar todos los archivos de una extensión específica en un directorio con rm?

Ejercicios sobre mover versus eliminar y copiar archivos

  1. Mueve el archivo reporte.txt al directorio /home/usuario/Documentos sin cambiar su nombre.
  2. Cambia el nombre del archivo tarea.txt a tarea_final.txt en el mismo directorio.
  3. Copia todos los archivos .pdf del directorio /home/usuario/Descargas al directorio /home/usuario/Documentos.
  4. Elimina el archivo ejemplo.py del directorio actual de forma interactiva, solicitando confirmación antes de eliminarlo.
  5. Elimina de forma forzada el directorio Backup y todo su contenido, incluso si algunos archivos tienen permisos de solo lectura.
  6. Mueve el directorio proyectos a /home/usuario/Proyectos, incluyendo todos sus subdirectorios y archivos.
  7. Elimina todos los archivos .log del directorio /var/logs de forma recursiva.
  8. Usa rm para eliminar todos los archivos del directorio actual que tengan la extensión .tmp.
  9. Mueve los archivos imagen1.png, imagen2.png y imagen3.png al directorio /home/usuario/Imágenes.
  10. Usa el comando cp para hacer una copia de seguridad del archivo datos.csv en el directorio /home/usuario/Backup.

Respuestas a las preguntas

  1. La diferencia principal es que mover un archivo dentro del mismo sistema de archivos solo modifica las referencias en los directorios, mientras que copiar y luego eliminar accede a los datos del archivo.
  2. Mover es más rápido porque solo se actualizan las entradas del directorio, mientras que copiar y eliminar requiere leer y escribir todos los datos del archivo.
  3. Se requieren permisos de escritura y ejecución tanto en el directorio de origen como en el directorio de destino para mover un archivo.
  4. El número de inodo no cambia cuando se mueve un archivo dentro del mismo sistema de archivos, ya que solo se modifica la referencia del archivo.
  5. Usa la opción -n con el comando mv para evitar sobrescribir archivos sin pedir confirmación.
  6. El comando para eliminar un archivo es rm.
  7. La opción -r permite eliminar directorios de forma recursiva, incluyendo todos sus subdirectorios y archivos.
  8. El comando rm -rf / eliminaría todos los archivos y directorios del sistema si se ejecuta con permisos de superusuario, lo que podría destruir el sistema.
  9. La opción -i del comando rm solicita confirmación antes de eliminar cada archivo.
  10. Puedes usar rm *.ext para eliminar todos los archivos con una extensión específica en un directorio.

Respuestas a los ejercicios

  1. Mueve reporte.txt a /home/usuario/Documentos:
    • mv reporte.txt /home/usuario/Documentos
  2. Cambia el nombre de tarea.txt a tarea_final.txt:
    • mv tarea.txt tarea_final.txt
  3. Copia todos los archivos .pdf de /home/usuario/Descargas a /home/usuario/Documentos:
    • cp /home/usuario/Descargas/*.pdf /home/usuario/Documentos
  4. Elimina el archivo ejemplo.py de forma interactiva:
    • rm -i ejemplo.py
  5. Elimina el directorio Backup y todo su contenido de forma forzada:
    • rm -rf Backup
  6. Mueve el directorio proyectos a /home/usuario/Proyectos:
    • mv proyectos /home/usuario/Proyectos
  7. Elimina todos los archivos .log del directorio /var/logs de forma recursiva:
    • rm -r /var/logs/*.log
  8. Elimina todos los archivos .tmp del directorio actual:
    • rm *.tmp
  9. Mueve imagen1.png, imagen2.png, y imagen3.png a /home/usuario/Imágenes:
    • mv imagen1.png imagen2.png imagen3.png /home/usuario/Imágenes
  10. Copia de seguridad de datos.csv en /home/usuario/Backup:
    • cp datos.csv /home/usuario/Backup

No te detengas, sigue avanzando

Aquí tienes un propósito que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera! El mundo necesita más hackers…

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Sobre los autores

Álvaro Chirou

Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 1.800.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes seguirme en mis redes:

Laprovittera Carlos

Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes saber más de mi y de mis servicios en mi sitio web: laprovittera.com y seguirme en mis redes:

Hacker de 0 a 100 desde las bases hasta conseguir empleo

¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: https://achirou.com/hacker-de-0-a-100-desde-las-bases-hasta-conseguir-empleo/ que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.

Hemos creado una ruta de 0 a 100. Un plan de desarrollo que va desde las bases: cómo aprender hacking, qué aprender, en qué orden; pasando por las areas técnicas necesarias como Linux, Redes, Programación y los conocimientos necesarios en ciber seguridad, hacking, pentesting hasta la práctica y el inicio laboral: Crear tu propio laboratorio, certificaciones, adquirir experiencia e iniciarse laboralmente.

Este es un mega post. Una guía con más de 250 artículos que te llevaran por el camino del hacker. Esta guía es gratuita y esta creada gracias al esfuerzo y al trabajo combinado de Alvaro Chirou y mío (Laprovittera Carlos).

Creamos esta guía (futuro curso) para que puedas iniciarte en este mundo. Puedes arrancar ahora, GRATIS, solo necesitas un PC, conexión a internet y paciencia (Ser hacker NO ES un camino de la noche a la mañana).

El Hacking y la ciberseguridad es una carrera divertida, emocionante y gratificante que te recompensará y desafiará por igual. Sin embargo, para quienes buscan adentrarse en este campo en auge y en constante evolución, puede resultar difícil saber por dónde empezar. ¡Ahí es donde entra en juego nuestra guía en ciberseguridad!

Esta es la hoja de ruta hacia el trabajo de ciberseguridad de tus sueños. Te ayudará a entender qué conocimientos, habilidades y certificados son necesarios para alcanzar tus metas profesionales y tener una carrera próspera. Si quieres ser consultor de ciberseguridad, analista de malware, evaluador de penetración, analista de SOC o cualquier otro puesto de ciberseguridad, esta guía es lo que necesitas.

SIGUE APRENDIENDO GRATIS CON NUESTRAS GUIAS

Aprende con nuestros más de 100 cursos que tenemos disponibles para vos

Compartimos estos recursos para ayudar a la comunidad de hacking y ciberseguridad. COMPARTE y Siéntete libre de agregar más sugerencias en los comentarios a continuación, respondemos todos y cada uno de los comentarios.

Saludos amigos y happy hacking!!!