Bienvenidos a esta Guía Rápida de Linux para Hackers #10 Gestión de Directorios y Archivos. Comparte este articulo y síguenos para recibir más capítulos 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.

Índice

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

Lista de aprendizajes del artículo

  1. Crear directorios con mkdir:
    • Aprender a utilizar el comando mkdir para crear directorios, incluyendo múltiples directorios y subdirectorios.
  2. Opciones avanzadas de mkdir:
    • Utilizar opciones como -p para crear estructuras de subdirectorios y -m para establecer permisos al crear directorios.
  3. Eliminar directorios con rmdir y rm:
    • Diferenciar entre rmdir para eliminar directorios vacíos y rm -r para eliminar directorios no vacíos.
  4. Copiar archivos y directorios con cp:
    • Usar el comando cp para copiar archivos, directorios y preservar atributos.
  5. Mover y renombrar con mv:
    • Aplicar el comando mv para mover archivos/directorios o renombrarlos.
  6. Eliminar archivos con rm:
    • Utilizar rm para eliminar archivos y directorios, y comprender las opciones interactivas y forzadas.
  7. Comandos seguros y peligrosos:
    • Identificar comandos riesgosos como rm -rf y cómo evitar errores fatales.
  8. Permisos y alias:
    • Explorar la relación entre permisos de archivo y la administración mediante comandos. Crear alias para evitar errores.

Comando mkdir en Linux/Unix con ejemplos

Ahora aprendamos cómo crear nuestro propio directorio con la ayuda del símbolo del sistema. mkdir significa “crear directorio”. Con la ayuda del comando mkdir, puede crear un nuevo directorio en cualquier lugar de su sistema. Simplemente escriba “mkdir <nombre del directorio>” , en lugar de <nombre del directorio> escriba el nombre del nuevo directorio que desea crear y luego presione Enter.


Podemos crear varios directorios estableciendo los directorios mediante permisos con el comando mkdir. No podemos crear directorios sin permiso y podríamos encontrarnos con el error “permiso denegado”. Los directorios que se deben crear deben tener un nombre, por lo que mkdir crea ese directorio en particular cuando el directorio no existe con ese nombre. Pero si ese nombre existe, el comando mkdir no creará el directorio.

Sintaxis:

mkdir  < nombre_directorio >  

Ejemplo:

mkdir laprovittera

En el ejemplo anterior, estoy en el directorio /home/laprovittera/Escritorio/ . He creado un directorio “laprovittera” al pasar el comando “mkdir laprovittera” . Ahora, si intento crear un nuevo archivo con el mismo nombre de archivo “laprovittera” que técnicamente ya existe, recibiré un mensaje de error.

Nota: Si no proporciona una ruta, de manera predeterminada, el archivo se creará únicamente en el directorio actual. Si desea crear el directorio en otro lugar, proporcione la ruta del directorio de destino y el archivo se creará allí.

El comando mkdir es el principal utilizado para crear nuevos directorios. La capacidad de crear directorios es esencial para organizar archivos o preparar el terreno para operaciones más avanzadas, como scripts o herramientas que requieren carpetas específicas.

Para crear varios directorios

Sintaxis:

mkdir  < nombredir1 > < nombredir2 > < nombredir3 >  …    

También puedes crear varios directorios simultáneamente. Observa el ejemplo anterior: hemos creado varios directorios: ‘alvaro carlos shadow’ .

Opciones de Mkdir

OpcionesDescripción
mkdir -p, -parentsAgregar directorio incluyendo su subdirectorio.
mkdir -v, -verboseImprima un mensaje para cada directorio creado.
mkdir -m -mode=MODOEstablecer privilegio de acceso.
-ZEstablece el contexto de seguridad SELinux de todos los directorios creados en su tipo predeterminado.
–context[=CTX]Funciona como la opción -Z. Si se menciona CTX, establece el contexto de seguridad SMACK o SELinux en CTX.
–versionMuestra el número de versión y algunos detalles de la licencia y luego sale.
–helpMuestra los detalles relacionados con la ayuda y luego sale.

Directorios de Linux mkdir -p

Con la ayuda del comando mkdir -p puede crear subdirectorios de un directorio. Si no existe, primero creará el directorio principal, pero si ya existe, no mostrará ningún mensaje de error y seguirá adelante para crear subdirectorios.

He creado un directorio “laprovittera” con su subdirectorio “carlos” . Como el directorio “laprovittera” no existe, primero creará “laprovittera” y luego su subdirectorio “carlos” sin imprimir ningún error. Por lo tanto, este comando es muy útil para crear un archivo largo como “cursos/hacking/kali/fecha”. Con el comando mkdir tienes que crear cada archivo uno por uno. Pero el comando mkdir -p lo creará de una vez.

Directorios de Linux mkdir -v

El comando ‘mkdir -v’ imprimirá un mensaje con cada nuevo archivo creado.

En el ejemplo anterior, he creado ‘shadow darkshadow dark’ y puedes ver el mensaje para cada archivo individual. Si ya existen archivos, aparecerá un mensaje de error como el que se muestra a continuación.

mkdir -pv y mkdir -vp

Los comandos ‘mkdir -pv’ y ‘mkdir -vp’ son iguales. Si combinas -p, puedes crear una lista larga de archivos como cursos/hacking/kali/fecha con un mensaje impreso para cada archivo.

Ahora, observe el siguiente ejemplo. Aquí, ya creé el archivo ‘alvaro/cursos/hacking/kali/fecha y luego quiero imprimir el resto de los tres archivos. Al combinar -p, no se imprimirá un mensaje de error y se crearán los archivos adicionales.

Directorios de Linux mkdir -m=MODE

Con la ayuda de este comando, puedes acceder a los permisos del directorio que estás creando. El acceso significa otorgar la autoridad para leer (r), escribir (w) y ejecutar (x). Puedes acceder a los permisos de tu directorio de diferentes maneras.

Para tener acceso completo, el comando será

 “mkdir  -m = rwx < archivo > ”   

 o   

“mkdir -m 777  < archivo > “.  

Para leer y escribir, el comando será

“mkdir  -m = rw < archivo > ”   

Para solo lectura/solo escritura/solo ejecución, el comando será

“mkdir  -m = r < archivo > “/ “mkdir  -m = w < archivo > ” / “mkdir  -m = x < archivo > “/      

Aquí, en lugar deTienes que escribir el nombre del archivo que quieres crear.

Nota : Los permisos se representan de dos formas: alfanuméricos y octales (0 a 7). Se puede acceder a los comandos en tres categorías diferentes: usuario, grupo y otros. Aquí 777 significa que el usuario, el grupo y otros tienen los tres tipos de acceso al directorio.

Al pasar el comando anterior, ‘mkdir -m=rwx hacker’ creará el directorio ‘hacker’ y dará acceso al usuario, grupo y otros para leer, escribir y ejecutar este directorio.

Comando rmdir en Linux/Unix con ejemplos

Este comando se utiliza para eliminar un directorio, pero no se puede eliminar un directorio que incluya un subdirectorio. Es decir, el directorio debe estar vacío para poder eliminarlo.

Sintaxis:

rmdir  < nombre_directorio >  

Ejemplo:

rmdir creado  

Por ejemplo, en la imagen de abajo hemos eliminado el directorio ‘file1’ de ‘envelope’ con éxito. Ahora queremos eliminar el directorio ‘created’ . Pero muestra un error ya que contiene ‘file2’ . Por lo tanto, para eliminar el directorio ‘created’, primero tenemos que eliminar ‘file2’. Luego, podremos eliminar el directorio ‘created’.

rmdir -p

Este comando eliminará un directorio, incluidos todos sus subdirectorios, de una sola vez. En la siguiente imagen, se eliminaron todos los subdirectorios con el comando ‘rmdir -p’.

rmdir -r

Eliminar archivos es una parte esencial de la gestión de directorios. El comando rm se utiliza para eliminar archivos, y con la opción -r, también puede eliminar directorios de manera recursiva.

rm archivo.txt

Elimina un archivo. Para eliminar directorios:

rm-r /home/usuario/proyectos

Este comando borra el directorio proyectos y todo su contenido. Hackers pueden usar este comando para borrar rastros de su presencia en un sistema comprometido.

El comando mkdir tiene más opciones que puedes explorar

Mover y copiar directorios

Mover y copiar archivos es esencial para cualquier administrador o hacker. El comando mv mueve archivos o directorios de un lugar a otro, mientras que cp los copia.

Mover y copiar directorios desde la shell (terminal) es una de las habilidades fundamentales para cualquier hacker o administrador de sistemas. Usar la línea de comandos para gestionar archivos y directorios es mucho más eficiente que hacerlo mediante interfaces gráficas. En este artículo te voy a enseñar cómo puedes mover y copiar directorios como un experto, utilizando comandos simples y avanzados.

Comando mv para mover directorios

El comando mv es el encargado de mover archivos y directorios en sistemas Unix (Linux, macOS). Su sintaxis es la siguiente:

mv [opciones] origen destino

Ejemplo básico: Mover un directorio

Supongamos que tienes un directorio llamado proyectos y quieres moverlo al directorio /home/hacker/trabajo:

mv proyectos /home/hacker/trabajo

Este comando mueve el directorio proyectos y su contenido a la ubicación /home/hacker/trabajo. Si el destino no existe, el directorio proyectos se renombrará como trabajo.

Ejemplo 2:
mv /home/carlos/archivo.txt /var/www/html/

Este comando mueve el archivo archivo.txt al directorio /var/www/html/, que es comúnmente utilizado para archivos web. Un hacker podría utilizar este comando para mover archivos maliciosos a un servidor web vulnerable.

De forma similar, el comando cp permite copiar archivos:

cp-r /home/carlos/proyectos /tmp/

Este comando copia el directorio proyectos y todo su contenido al directorio temporal /tmp/. Usar la opción -r es necesario para copiar directorios completos de manera recursiva.

Mover múltiples directorios

También puedes mover varios directorios al mismo tiempo. Si tienes varios directorios como proyecto1proyecto2, y proyecto3, y quieres moverlos todos a /home/hacker/trabajo, puedes usar:

mv proyecto1 proyecto2 proyecto3 /home/hacker/trabajo

Esto moverá los tres directorios al directorio /home/hacker/trabajo.

Renombrar directorios

El comando mv también se utiliza para renombrar directorios. Por ejemplo, si quieres renombrar proyectos a archivos_proyectos:

omv proyectos archivos_proyectos

Comando cp para copiar directorios

A diferencia de mv, el comando cp se utiliza para copiar archivos y directorios. Para copiar un directorio completo, debes usar la opción -r (recursivo), que le indica a cp que copie todo el contenido, incluidos los subdirectorios. Su sintaxis es:

cp -r [opciones] origen destino

Ejemplo básico: Copiar un directorio

Si tienes un directorio llamado proyectos y quieres copiarlo a /home/hacker/backup, el comando sería:

cp -r proyectos /home/hacker/backup

Esto creará una copia del directorio proyectos dentro de /home/hacker/backup.

Copiar múltiples directorios

Al igual que con mv, puedes copiar varios directorios a la vez. Si tienes proyecto1proyecto2 y proyecto3, y quieres copiarlos todos al directorio /home/hacker/backup, puedes hacer:

cp -r proyecto1 proyecto2 proyecto3 /home/hacker/backup

Esto creará copias de los tres directorios en el destino especificado.

Copiar directorios con enlaces simbólicos

Si en tu directorio tienes enlaces simbólicos y quieres preservarlos al copiar, usa la opción -a (archive), que mantiene la estructura original del directorio, incluyendo permisos, enlaces simbólicos, etc.:

cp -a proyectos /home/hacker/backup

Opciones avanzadas para mv y cp

Mover o copiar con confirmación

Si no estás seguro de si debes sobrescribir un archivo o directorio en el destino, puedes usar la opción -i (interactivo), que te pedirá confirmación antes de sobrescribir cualquier cosa:

mv -i proyectos /home/hacker/trabajo
cp -ri proyectos /home/hacker/backup

En este caso, el comando te preguntará si deseas sobrescribir los archivos en caso de conflicto.

Mostrar progreso durante la copia

Si estás copiando un directorio muy grande y quieres ver el progreso, puedes combinar el comando cp con pv (Pipe Viewer), que muestra una barra de progreso:

cp -r proyectos /home/hacker/backup | pv

Esto es muy útil cuando trabajas con directorios que contienen muchos archivos grandes.

Mantener permisos y atributos

Para asegurarte de que los permisos, propietarios y tiempos de modificación de los archivos se conserven al copiarlos, usa las opciones -p (preserve) o -a (archive):

ocp -rp proyectos /home/hacker/backup

Forzar la copia o el movimiento

Si quieres sobrescribir archivos sin que te pida confirmación, usa la opción -f (force). Esto puede ser útil cuando trabajas con scripts o quieres asegurarte de que los archivos se reemplacen:

mv -f proyectos /home/hacker/trabajo
cp -rf proyectos /home/hacker/backup

Usar comodines para mover o copiar

Si quieres mover o copiar múltiples archivos que sigan un patrón, puedes usar comodines. Por ejemplo, si quieres mover todos los directorios que empiecen con “proyecto” a /home/hacker/trabajo:

mv proyecto* /home/hacker/trabajo

Esto moverá todos los directorios cuyo nombre comience con “proyecto” al directorio de destino.

Combinando mv y cp con otros comandos

Uno de los poderes de la shell es que puedes combinar varios comandos para lograr tareas más complejas. Aquí algunos ejemplos:

Usar find para mover o copiar selectivamente

Si quieres mover o copiar directorios basándote en ciertos criterios (como la fecha de modificación o el nombre), puedes usar el comando find. Por ejemplo, para mover todos los directorios modificados en los últimos 7 días:

find . -type d -mtime -7 -exec mv {} /home/hacker/trabajo \;

Este comando busca todos los directorios (-type d) modificados en los últimos 7 días (-mtime -7) y los mueve a /home/hacker/trabajo.

Copiar o mover solo archivos de cierto tipo

Si solo te interesan los archivos dentro de los directorios que tengan cierta extensión, por ejemplo .txt, puedes combinar find y cp:

find . -type f -name "*.txt" -exec cp {} /home/hacker/backup \;

Esto copiará todos los archivos .txt encontrados en el directorio actual y sus subdirectorios al destino.

Errores comunes y cómo evitarlos

Cuando mueves o copias directorios, hay algunos errores comunes que pueden surgir. Aquí te doy algunos consejos para evitarlos:

1. No usar -r en cp: Si olvidas la opción -r al copiar un directorio, verás un error que te dirá que no puede copiar un directorio sin esta opción. Asegúrate siempre de usar -r o -a cuando trabajes con directorios.

2. Sobrescribir sin querer: Si usas mv o cp sin la opción -i, podrías sobrescribir archivos o directorios sin que te lo pregunte. Para evitar esto, usa siempre -i si no estás completamente seguro.

3. Mover o copiar archivos a un directorio incorrecto: Asegúrate de verificar dos veces el destino antes de ejecutar un comando. Un pequeño error tipográfico puede mover o copiar tus archivos a un lugar que no esperabas.

Gestión avanzada de directorios y su importancia para los hackers

Estos comandos son muy básicos, pero aun así, desde el principio te vamos a ir enseñando como podes usarlos en temas de hacking y ciberseguridad

Ocultar archivos en directorios ocultos

En Linux, los archivos y directorios que comienzan con un punto (.) son considerados ocultos. Los hackers pueden aprovechar esta funcionalidad para esconder archivos maliciosos o scripts dentro del sistema.

Ejemplo: Crear un directorio oculto

mkdir /home/carlos/.oculto

Este comando crea un directorio oculto llamado .oculto dentro del directorio del usuario. Los hackers pueden almacenar archivos dentro de este directorio sin que sean visibles a simple vista.

Exploración de directorios con permisos inadecuados

Muchas veces, los sistemas mal configurados tienen directorios o archivos con permisos más amplios de lo necesario, lo que abre la puerta a explotaciones. Un hacker podría usar herramientas como find para buscar estos archivos y directorios vulnerables.

Ejemplo: Buscar archivos con permisos peligrosos

find / -perm 777

Este comando busca archivos y directorios que tengan permisos de lectura, escritura y ejecución para todos los usuarios. Estos archivos son vulnerables a manipulaciones maliciosas.

Creación de directorios para ataques persistentes

Los hackers a menudo intentan crear acceso persistente a los sistemas que comprometen, lo que significa que, incluso si se reinicia el sistema o se revoca el acceso inicial, aún pueden regresar. Para ello, pueden crear directorios y archivos en lugares estratégicos, como en /etc/ o /usr/local/bin/, para ejecutar scripts maliciosos al inicio del sistema.

Ejemplo: Crear un archivo de inicio automático

echo “nc -lvp 4444 -e /bin/bash”> /etc/init.d/backdoor.sh
chmod+x /etc/init.d/backdoor.sh

Este comando crea un script que ejecuta un servidor de escucha en el puerto 4444, permitiendo que el hacker se conecte remotamente al sistema. Luego, el script se coloca en un directorio de inicio para que se ejecute automáticamente al reiniciar el sistema.

Uso de directorios temporales para ocultar actividades

Los directorios temporales como /tmp o /var/tmp son áreas en las que los archivos se almacenan de forma temporal. Debido a que muchos procesos del sistema los utilizan, los hackers a menudo esconden scripts o archivos maliciosos en estos directorios, confiando en que no se revisen regularmente.

Ejemplo: Ejecutar un script desde un directorio temporal

cp/home/usuario/malware.sh /tmp/
bash /tmp/malware.sh

Este comando copia un script malicioso al directorio /tmp/ y lo ejecuta desde allí. Debido a la naturaleza temporal del directorio, es menos probable que se detecte.

Comando cp en Linux/Unix | Copiar archivo en Linux

‘cp’ significa copiar. El comando ‘cp’ se utiliza para copiar un archivo o un directorio.

El comando cp se utiliza para copiar directorios y archivos. El comando contiene tres modos de funcionamiento principales, representados por los tipos de argumentos que se muestran al programa para copiar un archivo a otros archivos, varios archivos a cualquier directorio o para copiar todos los directorios a otros directorios.

Crear copias de archivos puede ser útil por numerosas razones:

  • Si se ha creado una copia del archivo antes de que se hayan realizado cambios, siempre podremos revertir al archivo original.
  • La copia de un archivo puede utilizarse para transferirlo a un dispositivo extraíble.
  • La copia de un documento puede utilizarse como plantilla para un documento nuevo.

Modos de funcionamiento del comando cp

El comando cp contiene tres modos de funcionamiento principales. Estos modos se completan a partir de la cantidad y el tipo de argumentos que se muestran al programa que se está invocando.

  • El programa puede copiar el contenido del primer archivo al segundo archivo, lo que hace que el segundo archivo sea esencial cuando el programa contiene dos argumentos de nombre de ruta a los archivos.
  • El programa puede copiar todos los archivos de origen al directorio deseado, haciendo que cualquier archivo que no esté disponible esté disponible cuando el programa contiene uno o más argumentos de nombre de ruta de archivos y los convierte en un argumento de ruta a un directorio.
  • El comando cp puede copiar todos los archivos dentro del directorio de origen al directorio deseado, creando los directorios o archivos necesarios cuando los argumentos del programa son los nombres de ruta de dos directorios. Este modo de operación necesita una opción adicional para representar la copia recursiva del directorio. El origen se copiará en el destino, mientras que se crea un nuevo directorio si el destino no existe si el directorio de destino ya está disponible.

Opciones del comando cp

OpciónDescripción
–archive, -aEs equivalente a -dR –preserve=all.
attributes-only  No copia los datos del archivo, solo los atributos.
-bEs como una copia de seguridad pero no acepta ningún argumento.
–backup[=CONTROL]Realiza una copia de seguridad de todos los archivos de destino existentes.
–copy-contensCuando es recursivo, copia contenidos de archivos especiales.
-dEs equivalente a –no-dereference –preserve=links.
–force, -fSi no se puede abrir algún archivo de destino existente, elimínelo e intente nuevamente (esta opción se evita si también se usa el indicador -n).
–interactive, -iSolicita confirmación antes de sobrescribir (anula el indicador -n anterior).
-HEn SOURCE, sigue los enlaces simbólicos de la línea de comandos.
–link, -lEspecifica archivos de enlace duro en lugar de copiarlos.
dereference, -LEn FUENTE siempre sigue enlaces simbólicos.
–no-clobber, -nNo sobrescribe ningún archivo existente (anula el indicador -i).
–no-dereference, -PEn FUENTE nunca sigue enlaces simbólicos.
-pEs equivalente a –preserve=mode, timestamps,ownership.
–preserve[=ATTR_LIST]Conserva los atributos descritos. Si es posible, atributos adicionales: all, xattr, links, context.
–no-preserve=ATTR_LISTNo conserva los atributos descritos.
–parentsEn el directorio, se utiliza el nombre completo del archivo fuente.
–recursive, -r, -RCopia directorios recursivamente.
–reflink[=WHEN]Controla copias de CoW/clon.
–remove-destinationElimina todos los archivos de destino existentes antes de intentar abrirlos (a diferencia de –force).
–sparse=WHENControla el establecimiento de archivos dispersos.
–string-trailing-slashesElimina las barras diagonales finales de todos los argumentos SOURCE.
–symbolic-link, -sEstablece enlaces simbólicos en lugar de copiar.
–suffix=SUFFIX, -SAnula el sufijo de copia de seguridad común.
–target-directory=DIRECTY, -tCopia cada argumento FUENTE al DIRECTORIO.
–no-target-directory, -TConsidera a DEST como un archivo general.
–update, -uCopia si el archivo FUENTE es más nuevo en comparación con el archivo de destino o si no se especifica el archivo de destino.
–verbose, -vEspecifica lo que se está haciendo.
–one-file-system, -xPermanece en el sistema de archivos.
-ZEstablece el contexto de seguridad SELinux del archivo de destino en el tipo predeterminado.
–context[=CTX]Es lo mismo que -Z, o si se menciona CTX, establece el contexto de seguridad SMACK o SELinux en CTX.
–helpMuestra el menú de ayuda y sale.
–versionProporciona detalles de la versión y sale.

Sintaxis de CP

Los archivos FUENTE dispersos se encuentran mediante una heurística y el archivo DESR relacionado se crea disperso de manera predeterminada. Es el comportamiento elegido por –sparse=auto . Podemos describir –sparse=always para crear un archivo DEST disperso si el archivo FUENTE incluye un orden suficientemente largo de cero bytes. También podemos aplicar –sparse=never para restringir el establecimiento de archivos dispersos.

Si se menciona –reflink[=always] , se implementa una copia liviana, en la que los bloques de datos se copian solo si se modifican. Si no es posible o se menciona –reflink=auto , la copia falla y se vuelve a la copia estándar. También podemos aplicar –reflink=never para garantizar que se implemente una copia estándar.

El comando cp se utiliza para copiar los archivos. Requiere especificar un origen y un destino.

cp [fuente] [destino]

La fuente («source» en inglés) es el archivo que quieres copiar. El destino («destination» en inglés) es la ubicación en donde quieres poner la copia. Cuando el comando es exitoso, el comando cp no tendrá ninguna salida (ninguna noticia es buena noticia).

Entonces, para copiar un archivo en el mismo directorio la sintaxis será:

cp   nombre de archivo existente > < nuevo  nombre de archivo >   

En la captura de pantalla anterior, hemos creado una copia de “carlos.txt” y la hemos denominado “carlos1.txt” . Si, por ejemplo, ya existe <nombre de archivo nuevo> (en nuestro caso, “carlos1.txt“), simplemente sobrescribirá el archivo anterior.

Para copiar un archivo en un directorio diferente

Debemos mencionar la ruta del directorio de destino. En la siguiente captura de pantalla, antes no había ningún archivo “carlos.txt”. Después de dar el comando, el archivo carlos.txt se ha copiado al directorio de destino, que es “hacker” .

Recuerda: El carácter ~ representa el directorio home.

El Modo Verbose

La opción -v hará que el comando cp produzca la salida en caso de ser exitoso. La opción -v se refiere al comando verbose:

cp -v carlos.txt file1 hacker3

Cuando el destino es un directorio, el nuevo archivo resultante tendrá el mismo nombre que el archivo original. Si quieres que el nuevo archivo tenga un nombre diferente, debes proporcionar el nuevo nombre como parte del destino:

cp -v carlos.txt hacker/C.txt

Linux cp -r

La opción ‘r’ con el comando de copia se puede utilizar para copiar un directorio, incluido todo su contenido, desde un directorio de origen al directorio de destino.

Sintaxis:

cp -r  < DirectorioOrigen > < DirectorioDestino >   

Ejemplo:

cp -r hacker hacker1

En el ejemplo anterior, hemos copiado el directorio hacker al directorio de destino hacker1 . Aquí, todo el contenido del directorio ‘hacker’, incluido su contenido, se ha copiado al directorio de destino.

El comando cp se utiliza para copiar archivos. Similar al comando mv, requiere al menos dos argumentos: un origen y un destino. Por ejemplo, para copiar el archivo /etc/passwd en el directorio actual, utilice el siguiente comando:

cp /etc/passwd .

El segundo argumento es el carácter (.). Recuerde la sección Cambio de Directorio, este carácter es un atajo al directorio actual. Ejecutar el comando anterior resulta en una copia del contenido del archivo /etc/passwd en el directorio Documents, ya que este es nuestro directorio actual.

Copiar varios archivos o directorios en Linux

Se pueden copiar varios archivos o directorios a un directorio de destino a la vez. En este caso, el destino debe ser un directorio. Para copiar varios archivos, puede utilizar comodines (cp *.extension) que tengan el mismo patrón.

Sintaxis:

cp *. < extensión > < directoriodestino >   

Ejemplo:

cp *.txt /hacker

En el ejemplo anterior, hemos copiado archivos (archivo1, archivo2, archivo3) que tienen la misma extensión ‘.txt’ al directorio Documentos.

Linux cp –backup

Si el archivo que desea copiar ya existe en el directorio de destino, puede hacer una copia de seguridad de su archivo existente con el uso de este comando.

Sintaxis:

cp --backup  < nombre_archivo > < Directorio_destino >   

Ejemplo:

cp --backup carlos.txt /home/carlos/hacker  

Como puede ver arriba, ‘carlos.txt’ ya existe en el directorio de destino. Por lo tanto, hemos creado una copia de seguridad de este archivo y lo hemos copiado en el mismo directorio (con el mismo nombre).

Ahora nuestro directorio de destino, que es ‘Descargas’, tiene dos archivos con el mismo nombre (es decir, ‘carlos.txt‘).

Evitar Sobrescribir los Datos

El comando cp puede ser destructivo para los datos si el archivo de destino ya existe. En el caso donde el archivo de destino existe, el comando cp sobreescribe el contenido del archivo existente con el contenido del archivo fuente.

Hay dos opciones que pueden utilizarse para asegurarnos contra sobreescrituras accidentales de los archivos. Con la opción -i (interactivo), el comando cp emitirá un prompt antes de sobrescribir un archivo. La opción -i requiere respuesta y o n para cada copia que podría sobrescribir el contenido de un archivo existente.

Linux cp -i

La opción cp ‘-i’ le permite confirmar una vez antes de sobrescribir su archivo.

Sintaxis:

cp -i  < nombre_archivo > < Directorio_destino >   

Ejemplo:

cp -i carlos.txt /home/carlos/hacker  

Como puede ver, solicita permiso para sobrescribir el archivo ‘carlos.txt’, ya que este archivo ya existe en el directorio de destino. Ahora, puede presionar y para sobrescribir el archivo y n para no sobrescribirlo.

Observa que puesto que el valor de n (no) se dió al emitir un prompt de sobrescritura del archivo, no se hicieron cambios en el archivo. Si se da un valor de y (sí), entonces resultará en un proceso de copiado. La opción -i requiere respuesta y o n para cada copia que podría sobrescribir el contenido de un archivo existente. Esto puede ser tedioso cuando se sobrescribe varios archivos.

Si esta situación ocurriera para 100 archivos, puede resultar muy molesto rápidamente. Si quieres contestar automáticamente n para cada prompt, utiliza la opción -n. En esencia, significa «sin sobreescribir».

Es importante recordar que la fecha de modificación de los directorios representa la última vez que un archivo se agrega o se elimina del directorio.

Si los archivos en un directorio se modificaron hace muchos días o meses, puede ser más difícil de decir exactamente cuándo fueron modificados, ya que para los archivos más antiguos sólamente se proporciona la fecha. Para una información más detallada de la hora de modificación puedes utilizar la opción –full time que visualiza la fecha y la hora completas (incluyendo horas, segundos, minutos…):

Es posible realizar una ordenación inversa con las opciones -S o -t mediante la opción -r.

Linux cp -l

Si desea crear un enlace “duro” (hard link) de un archivo en lugar de copiar ese archivo, puede utilizar la opción ‘l’.

Nota: Al crear un enlace duro del archivo, el número de inodo de los dos archivos permanecerá igual. Sin embargo, en caso de copia, el número de inodo cambia.

Sintaxis:

cp -l  < ​​nombre_archivo > < Directorio_destino >   

Ejemplo:

cp -l laprovittera.txt /home/carlos/hacker3

Tenga en cuenta que hemos creado un enlace físico del archivo ‘laprovittera.txt’ en ‘hacker3’ . El número de inodo de ambos archivos es el mismo.

Linux cp -p

La opción cp ‘-p’ se utiliza para conservar las propiedades y atributos de un archivo. También puede conservar las propiedades seleccionadas que desee.

Sintaxis:

cp -p  < nombre_archivo > < Directorio_destino >   

Ejemplo:

cp -p carlos.txt hacker3  

Ahora, puedes hacer coincidir los dos archivos (el original y el copiado) en la imagen de arriba, ambos tienen las mismas propiedades. 

Linux cp -u -v

El comando cp -u -v se utiliza cuando desea asegurarse de que el archivo de destino falta o no existe.

Sintaxis:

cp -u -v  < nombres de archivo > < directorio de destino >   

Ejemplo:

cp -u -v docc archivo1.txt /home/sssit/Descargas/  

En la imagen de arriba, puedes ver que hay dos archivos , “carlos.txt” y “file1” . Ahora queremos copiar estos dos archivos en el directorio “hacker3”. Pero no sabemos que en el directorio “hacker3” ya existe el archivo “carlos.txt”.

Al dar el comando ‘cp -u -v’ se ocupará automáticamente del archivo ya existente (carlos.txt) y no lo sobrescribirá. Este comando es útil para copiar archivos grandes.

El comando dd

El comando dd se utiliza para copiar archivos o particiones enteras al nivel de bits.

dd [OPCIONES] OPERANDO

Este comando tiene varias características útiles, entre las que se incluyen:

  • Se puede usar para clonar o eliminar (wipe) discos o particiones enteras.
  • Se puede usar para copiar datos no procesados (raw) a dispositivos extraíbles como dispositivos USB o CD ROMS.
  • Se puede usar para realizar una copia de reserva (backup) y restituir el MBR (Master Boot Record).
  • Se puede usar para crear un archivo de un tamaño específico lleno de ceros binarios, el cual puede utilizarse como archivo de intercambio (swap file) (memoria virtual).

Examinemos el siguiente ejemplo. El comando dd creará un archivo denominado /tmp/swapex con 50 bloques de ceros de un megabyte de tamaño:

Utilice el siguiente comando cd para volver al directorio principal:

El comando dd utiliza argumentos especiales para especificar cómo funcionará. A continuación se muestran algunos de los argumentos más utilizados:

ArgumentoDescripción
ifArchivo de entrada (Input File): El archivo de entrada que se va a leer. dd if=/dev/zero of=/tmp/swapex bs=1M count=50 El ejemplo lee el archivo /dev/zero, un archivo especial que contiene un número ilimitado de ceros.
ofArchivo de salida (Output File): El archivo de salida que se va a escribir. dd if=/dev/zero of=/tmp/swapex bs=1M count=50
bsTamaño de bloque (Block Size): El tamaño de bloque que se va a utilizar. De forma predeterminada, el valor se presenta en bytes. Utilice los sufijos siguientes para especificar otras unidades: K, M, G y T para kilobytes, megabytes, gigabytes y terabytes respectivamente. dd if=/dev/zero of=/tmp/swapex bs=1M count=50 En el ejemplo se utiliza un tamaño de bloque de un megabyte.
countRecuento: El número de bloques que se van a leer desde el archivo de entrada. dd if=/dev/zero of=/tmp/swapex bs=1M count=50 En este ejemplo se leen 50 bloques.

A tener en cuenta

No es necesario especificar el tamaño de bloque ni el recuento al copiar dispositivos enteros. Por ejemplo, para clonar de un disco duro (/dev/sda) a otro (/dev/sdb) ejecute el siguiente comando:

dd if=/dev/sda of=/dev/sdb

El comando dd tiene más opciones que puedes explorar

 dd --help

Comando mv en Linux/Unix con ejemplos

El comando mv de Linux se utiliza para mover un archivo o directorio existente de una ubicación a otra. También se utiliza para cambiar el nombre de un archivo o directorio. Si desea cambiar el nombre de un solo directorio o archivo, será mejor utilizar la opción “mv” .

mv ORIGEN DESTINO

El comando mv requiere dos argumentos como mínimo. El primer argumento es la fuente u origen, la ruta al archivo que va a ser movido. El segundo argumento es el destino, la ruta al lugar donde se moverá el archivo. Generalmente, los archivos que se van a mover se denominan origen, y el lugar donde se van a colocar se denomina destino.

A tener en cuenta

Los permisos pueden afectar comandos de administración de archivos, incluyendo el comando mv. Mover un archivo requiere tener permisos de escritura y ejecución tanto en los directorios de origen como de destino.

Mover un archivo

Al mover un archivo, el número de inodo de ambos archivos seguirá siendo el mismo.  Para mover el archivo file1 al directorio hacker, utilice el nombre del archivo como origen y el nombre del directorio como destino.

Si un archivo se mueve de un directorio a otro sin especificar un nuevo nombre para el archivo, éste conservará su nombre original. El movimiento anterior se puede confirmar mediante el comando ls en el directorio Work:

En el ejemplo anterior, hemos movido el archivo “file” a “hacker” . Pero el número de inodo de ambos archivos sigue siendo el mismo.

El comando mv puede utilizarse para mover varios archivos, siempre y cuando el argumento final proporcionado al comando sea el destino. Por ejemplo, para mover tres archivos al directorio hacker:

Mover un archivo dentro del mismo directorio es una forma eficaz de cambiarlo de nombre. Por ejemplo, en el ejemplo siguiente, el archivo animals.txt recibe un nuevo nombre zoo.txt:

Mover un directorio

Los directorios se pueden mover de la misma forma que los archivos. En este caso, el número de inodo también permanecerá igual.

Opción mv

OpciónFunción
Mv -iPide permiso para sobrescribir.
Mv *Mover varios archivos a un directorio específico.
mv –suffix=Se utiliza para realizar copias de seguridad antes de sobrescribir.
Mv -uMueva únicamente aquellos archivos que no existan.

Archivo de Linux mv -i

Si desea copiar un archivo usando la opción ‘mv’ y si ese archivo ya existe, entonces silenciosamente sobrescribirá el archivo existente. Pero si usa la opción ‘i’ , primero le pedirá su permiso para sobrescribirlo.

Puedes copiar el archivo o rechazarlo simplemente escribiendo ‘y’ o ‘n’ .

Como puede ver, solicita permiso para sobrescribir el archivo ‘carlos.txt’, ya que este archivo ya existe en el directorio de destino. Ahora, puede presionar y para sobrescribir el archivo y n para no sobrescribirlo.

Observa que puesto que el valor de n (no) se dió al emitir un prompt de sobrescritura del archivo, no se hicieron cambios en el archivo. Si se da un valor de y (sí), entonces resultará en un proceso de copiado. La opción -i requiere respuesta y o n para cada copia que podría sobrescribir el contenido de un archivo existente. Esto puede ser tedioso cuando se sobrescribe varios archivos.

Si esta situación ocurriera para 100 archivos, puede resultar muy molesto rápidamente. Si quieres contestar automáticamente n para cada prompt, utiliza la opción -n. En esencia, significa «sin sobreescribir».

Es importante recordar que la fecha de modificación de los directorios representa la última vez que un archivo se agrega o se elimina del directorio.

Archivo Linux mv *

Este comando se utiliza para mover todos los archivos del directorio actual a otro directorio especificado a la vez. O todos los de una extensión.

Movemos todos los archivos con extensión TXT a la carpeta hack

mv *.txt hacker3/hack

Tras ejecutar el comando podemos ver el resultado:

Vemos como mover todos los archivos y directorios a otra carpeta

En el ejemplo anterior, todos los archivos y directorios presentes en el directorio ‘hacker’ se han movido al directorio ‘alvaro’ . Note el mensaje de error. Como la carpeta alvaro ya está contenida en ese mismo directorio obviamente no se puede mover a si misma.

mv –suffix

Esta opción le permite tener una copia de seguridad del archivo de destino antes de sobrescribirlo con el archivo en movimiento. El archivo de destino original se reemplazará por la extensión proporcionada con el comando.

Creamos los archivos

En el ejemplo, hemos movido ‘file1’ a ‘file2’ . Después de pasar el comando ‘mv ?suffix=.txt file1 file2’, ‘file1’ será reemplazado por ‘file2’ . Mientras tanto, el archivo ya existente ‘file2’ será reemplazado por la extensión ‘file2.txt’ .

El archivo de extensión indicará que es un archivo de respaldo.

Archivo de Linux mv -u

Cuando se utiliza mv *, se mueven todos los archivos al directorio de destino. Pero cuando se utiliza la opción ‘u’, los archivos que ya existen en el directorio de destino se omiten automáticamente y se copian todos los demás archivos.

Observa la figura anterior. En ‘hacker2’ hay varios archivos. Y en hacker3 podemos ver que algunos de esos archivos ya existen. Ahora queremos mover todos los restantes archivos de ‘hacker2’ a ‘hacker3’. Con la opción ‘u’, se omitirá  los archivos repetidos mientras que se moverán los otros dos archivos. Ahora ‘hacker3’ tiene los archivos repetidos sin sobrescribir. Esto cobra mcuho sentido cuando estamos haciendo copias de directorios con gran cantidad de archivos y, por sobre todo, con gran peso.

El comando mv tiene más opciones que puedes explorar

 mv --help

Resumen y Puntos clave:

Comando mv: Mover archivos y directorios El comando mv en Linux se utiliza para mover archivos o directorios de una ubicación a otra, o para renombrarlos. Al mover un archivo, su número de inodo no cambia, solo su ubicación en el sistema. Sintaxis básica:

mv <origen> <destino> 

Ejemplo:

mv archivo.txt /ruta/destino/ 

Esto mueve archivo.txt al directorio especificado.

Renombrar archivos y directorios con mv
Puedes usar el comando mv para cambiar el nombre de un archivo o directorio en el mismo directorio. Ejemplo:

mv archivo_viejo.txt archivo_nuevo.txt 

Este comando cambia el nombre del archivo archivo_viejo.txt a archivo_nuevo.txt.

Mover múltiples archivos
El comando mv también permite mover varios archivos al mismo tiempo si especificas un directorio de destino. Ejemplo:

mv archivo1.txt archivo2.txt archivo3.txt /ruta/destino/ 

Este comando mueve los tres archivos al directorio de destino.

Confirmar sobrescritura con la opción -i
Por defecto, mv sobrescribirá cualquier archivo existente en el destino sin advertencia. Sin embargo, la opción -i te pedirá confirmación antes de sobrescribir un archivo. Ejemplo:

mv -i archivo.txt /ruta/destino/ 

Si archivo.txt ya existe en el destino, te pedirá que confirmes antes de sobrescribirlo.

Evitar sobrescritura con la opción -n
Si no deseas que mv sobrescriba archivos existentes, puedes usar la opción -n para evitar la sobrescritura. Ejemplo:

mv -n archivo.txt /ruta/destino/

Mover todos los archivos de una extensión específica
Puedes usar el comodín * para mover todos los archivos con una extensión específica. Ejemplo:

mv *.txt /ruta/destino/ 

Este comando mueve todos los archivos .txt al directorio de destino.

Hacer copias de seguridad antes de sobrescribir con --suffix
Con la opción --suffixmv realiza una copia de seguridad del archivo existente antes de sobrescribirlo, agregando una extensión al archivo de respaldo. Ejemplo:

mv --suffix=.bak archivo.txt /ruta/destino/ 

Si archivo.txt ya existe en el destino, se renombrará como archivo.txt.bak antes de sobrescribirlo.

Mover archivos más recientes con -u
La opción -u asegura que solo se muevan los archivos que no existen en el destino o aquellos que son más nuevos que las versiones existentes. Ejemplo:

mv -u archivo.txt /ruta/destino/ 

Si archivo.txt en el destino es más nuevo o igual que la versión de origen, no se sobrescribirá.

Mover directorios completos
El comando mv también funciona para mover directorios completos, manteniendo intacta la estructura y contenido del directorio. Ejemplo:

mv directorio_origen /ruta/destino/ 

Esto moverá todo el directorio y su contenido a la nueva ubicación.

Opciones avanzadas del comando mv
Algunas otras opciones útiles del comando mv incluyen:

  • -v: Proporciona detalles sobre el proceso de movimiento, útil para verificar qué archivos se han movido.
  • -f: Fuerza la sobrescritura sin solicitar confirmación.
  • -t: Permite especificar el directorio de destino antes de los archivos de origen.

Ejemplo con verbose:

mv -v archivo.txt /ruta/destino/

Esto muestra en la terminal qué archivo se está moviendo.

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.

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.

Lista de aprendizajes del artículo

  1. Crear directorios con mkdir:
    • Aprender a utilizar el comando mkdir para crear directorios, incluyendo múltiples directorios y subdirectorios.
  2. Opciones avanzadas de mkdir:
    • Utilizar opciones como -p para crear estructuras de subdirectorios y -m para establecer permisos al crear directorios.
  3. Eliminar directorios con rmdir y rm:
    • Diferenciar entre rmdir para eliminar directorios vacíos y rm -r para eliminar directorios no vacíos.
  4. Copiar archivos y directorios con cp:
    • Usar el comando cp para copiar archivos, directorios y preservar atributos.
  5. Mover y renombrar con mv:
    • Aplicar el comando mv para mover archivos/directorios o renombrarlos.
  6. Eliminar archivos con rm:
    • Utilizar rm para eliminar archivos y directorios, y comprender las opciones interactivas y forzadas.
  7. Comandos seguros y peligrosos:
    • Identificar comandos riesgosos como rm -rf y cómo evitar errores fatales.
  8. Permisos y alias:
    • Explorar la relación entre permisos de archivo y la administración mediante comandos. Crear alias para evitar errores.

Puntos clave del artículo con resúmenes

  1. Comando mkdir para crear directorios:
    • Utilizado para crear directorios, permite incluir rutas absolutas o relativas. Con la opción -p, puede crear subdirectorios de manera eficiente, incluso si los directorios principales no existen.
    Ejemplo: mkdir -p proyectos/desarrollo/backend
  2. Permisos con mkdir -m:
    • Establece permisos directamente al crear un directorio. Por ejemplo, mkdir -m 755 nuevo_directorio asigna permisos de lectura, escritura y ejecución al usuario.
  3. Eliminar directorios con rmdir y rm:
    • rmdir solo elimina directorios vacíos. Para eliminar directorios con contenido, se usa rm -r o rm -rf para forzar la eliminación.
    Ejemplo: rm -rf carpetas_antiguas
  4. Copiar con cp:
    • El comando copia archivos y directorios. Usar cp -r permite copiar directorios completos, y con -p se preservan atributos como permisos y fechas.
    Ejemplo: cp -r proyectos /backup
  5. Mover y renombrar con mv:
    • Se utiliza tanto para mover archivos/directorios como para renombrarlos.
    Ejemplo: mv archivo.txt /nueva_ruta/ mv archivo.txt archivo_renombrado.txt
  6. Eliminar archivos con rm:
    • Elimina archivos y directorios. La opción -i solicita confirmación antes de eliminar, mientras que -f fuerza la eliminación.
    Ejemplo: rm -i importante.txt
  7. Uso seguro de comandos peligrosos:
    • Comandos como rm -rf / pueden eliminar todo el sistema. Alias personalizados y confirmaciones interactivas (-i) son útiles para evitar accidentes.
  8. Alias para protección:
    • Crear un alias para comandos como rm o mv puede añadir seguridad al evitar errores.
    Ejemplo: alias rm="rm -i"
  9. Utilidad en ciberseguridad:
    • Hackers usan comandos como mkdir y rm para manipular directorios, ocultar scripts en rutas temporales (/tmp) o realizar ataques persistentes.
    Ejemplo: mkdir /tmp/.oculto

Pon en práctica lo aprendido

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

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!!!