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:
- Diferencias entre mover, copiar y eliminar archivos en Linux.
- Cómo usar el comando
mv
para mover y renombrar archivos y directorios. - Cómo usar el comando
rm
para eliminar archivos y directorios. - Opciones avanzadas de los comandos
mv
yrm
para evitar sobrescrituras accidentales o forzar eliminaciones. - 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ón | Descripción |
rm *extension | Se utiliza para eliminar archivos que tienen la misma extensión. |
rm -r o R | Para eliminar un directorio de forma recursiva. |
rm -i | Eliminar un archivo de forma interactiva. |
rm -rf | Eliminar 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-system | Solo 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:
- 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. - Comando
mv
para mover archivos y directorios El comandomv
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/
Muevearchivo.txt
a la nueva ruta especificada.
- Renombrar archivos con
mv
Usarmv
dentro del mismo directorio también sirve para renombrar archivos. Ejemplo:mv archivo_viejo.txt archivo_nuevo.txt
Cambia el nombre del archivo dearchivo_viejo.txt
aarchivo_nuevo.txt
.
- Mover directorios completos con
mv
Mover un directorio funciona igual que con archivos. Si se utilizamv
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/
- Comando
mv
con opción-i
para evitar sobrescrituras La opción-i
demv
solicita confirmación antes de sobrescribir un archivo en el destino. Ejemplo:mv -i archivo.txt /ruta/nueva/
Siarchivo.txt
ya existe en el destino, se te pedirá confirmación para sobrescribirlo.
- Eliminar archivos con el comando
rm
El comandorm
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
Eliminaarchivo.txt
de manera permanente.
- Eliminar directorios con
rm -r
El comandorm
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.
- 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 dearchivo.txt
.
- Eliminar archivos o directorios de manera forzada con
rm -f
yrm -rf
La opción-f
(force) elimina archivos sin pedir confirmación, incluso si tienen permisos de solo lectura. La combinaciónrm -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.
- Eliminar todos los archivos de una extensión con
rm *.ext
Puedes usar el comandorm
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.
- Seguridad al usar
rm
El comandorm
elimina archivos de manera permanente, por lo que es esencial tener cuidado. Es posible usar alias para hacer que el comandorm
siempre sea interactivo, o usar utilidades comotrash-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.
- Advertencia con
rm -rf /**
El comandorm -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
- ¿Cuál es la principal diferencia entre mover un archivo dentro del mismo sistema de archivos y copiarlo y luego eliminarlo?
- ¿Por qué mover un archivo dentro del mismo sistema de archivos es más rápido que copiarlo y luego eliminarlo?
- ¿Qué permisos se requieren para mover un archivo en Linux?
- ¿Qué sucede con el número de inodo de un archivo al moverlo dentro del mismo sistema de archivos?
- ¿Qué opción puedes usar con el comando
mv
para evitar sobrescribir archivos sin pedir confirmación? - ¿Cuál es el comando para eliminar un archivo de forma permanente en Linux?
- ¿Qué hace la opción
-r
en el comandorm
? - ¿Qué significa el comando
rm -rf /
y por qué es peligroso? - ¿Qué opción del comando
rm
puedes usar para que solicite confirmación antes de eliminar cada archivo? - ¿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
- Mueve el archivo
reporte.txt
al directorio/home/usuario/Documentos
sin cambiar su nombre. - Cambia el nombre del archivo
tarea.txt
atarea_final.txt
en el mismo directorio. - Copia todos los archivos
.pdf
del directorio/home/usuario/Descargas
al directorio/home/usuario/Documentos
. - Elimina el archivo
ejemplo.py
del directorio actual de forma interactiva, solicitando confirmación antes de eliminarlo. - Elimina de forma forzada el directorio
Backup
y todo su contenido, incluso si algunos archivos tienen permisos de solo lectura. - Mueve el directorio
proyectos
a/home/usuario/Proyectos
, incluyendo todos sus subdirectorios y archivos. - Elimina todos los archivos
.log
del directorio/var/logs
de forma recursiva. - Usa
rm
para eliminar todos los archivos del directorio actual que tengan la extensión.tmp
. - Mueve los archivos
imagen1.png
,imagen2.png
yimagen3.png
al directorio/home/usuario/Imágenes
. - Usa el comando
cp
para hacer una copia de seguridad del archivodatos.csv
en el directorio/home/usuario/Backup
.
Respuestas a las preguntas
- 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.
- 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.
- Se requieren permisos de escritura y ejecución tanto en el directorio de origen como en el directorio de destino para mover un archivo.
- 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.
- Usa la opción
-n
con el comandomv
para evitar sobrescribir archivos sin pedir confirmación. - El comando para eliminar un archivo es
rm
. - La opción
-r
permite eliminar directorios de forma recursiva, incluyendo todos sus subdirectorios y archivos. - 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. - La opción
-i
del comandorm
solicita confirmación antes de eliminar cada archivo. - Puedes usar
rm *.ext
para eliminar todos los archivos con una extensión específica en un directorio.
Respuestas a los ejercicios
- Mueve
reporte.txt
a/home/usuario/Documentos
:mv reporte.txt /home/usuario/Documentos
- Cambia el nombre de
tarea.txt
atarea_final.txt
:mv tarea.txt tarea_final.txt
- Copia todos los archivos
.pdf
de/home/usuario/Descargas
a/home/usuario/Documentos
:cp /home/usuario/Descargas/*.pdf /home/usuario/Documentos
- Elimina el archivo
ejemplo.py
de forma interactiva:rm -i ejemplo.py
- Elimina el directorio
Backup
y todo su contenido de forma forzada:rm -rf Backup
- Mueve el directorio
proyectos
a/home/usuario/Proyectos
:mv proyectos /home/usuario/Proyectos
- Elimina todos los archivos
.log
del directorio/var/logs
de forma recursiva:rm -r /var/logs/*.log
- Elimina todos los archivos
.tmp
del directorio actual:rm *.tmp
- Mueve
imagen1.png
,imagen2.png
, yimagen3.png
a/home/usuario/Imágenes
:mv imagen1.png imagen2.png imagen3.png /home/usuario/Imágenes
- 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…
- Cómo conseguir trabajo de hacker en 2024
- Trabaja remoto e internacionalmente como Hacker en 2024
- Se necesitan más Hackers – Hechos y estadísticas de 2024
- Se Necesitan más Hackers – La escasez de habilidades en ciberseguridad está empeorando
- El salario de un hacker – Cuanto se gana como Pentesters/ Infosec
- Las empresas te estan buscando para hacerle frente a los ciberataques
- Cómo convertirse en analista de ciberseguridad
- Inicia en hacking y ciberseguridad como analista SOC
- DevOps vs DevSecOps para Hackers
- DevOps vs DevSecOps para Empresas
¿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
- Cómo Iniciarse en Hacking y Ciberseguridad en 2024
- Hacker de 0 a 100 desde las bases hasta conseguir empleo
- Curso de Redes para Hackers
- Curso Gratis de Programación
- Curso Gratis Linux – Capitulo 1 – Introducción a Linux
- Curso Gratis de Redes – Capitulo 1 – Tipos de redes y servicios
- Guía de Hacking y Pentesting capitulo 1: Introducción al Pentesting
- Como iniciarse en TRY HACK ME – Complete Beginner #1
- OSINT #1 Más de 200 Search Tools
- Curso Gratis de Java para Hackers
- Hardware para Hackers – Los mejores 40 Dispositivos de Hacking
- Guía de Flipper Zero – Qué es y para qué sirve
- SIGUE APRENDIENDO GRATIS EN NUESTRO BLOG
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!!!