Curso de Linux / Crear, copiar, mover y eliminar archivos y directorios

Al gestionar archivos y directorios en Linux, se crea un directorio con mkdir, se prepara un archivo vacío con touch y se copian o mueven con cp y mv. Para eliminar, se utilizan rm y rmdir. En este curso, se crea un espacio de práctica separado dentro del directorio personal y se conectan estos comandos de manera segura, verificando el estado antes y después de cada operación.

Al crear y mover archivos, primero aplique verificación de ubicación actual y ruta. Si el directorio de práctica de este artículo ya existe, elija un nuevo nombre y no continúe con los comandos siguientes si la creación falla.

Preparando el espacio de práctica

La práctica a continuación se realiza con Bash y una cuenta de usuario normal. ~/linux-course-07-practice es un directorio nuevo creado para la práctica. Si ya existe un directorio con el mismo nombre, no toque los datos existentes y elija otro nombre. El comando mkdir da error si ya existe, por lo que sirve como verificación inicial cuando se ejecuta por primera vez.

mkdir ~/linux-course-07-practice

Si tiene éxito, generalmente no aparece ningún mensaje. Verifique que el directorio se haya creado con ls -ld ~/linux-course-07-practice. Los comandos siguientes se ejecutan bajo la suposición de que el primer paso fue exitoso y que el directorio está vacío.

ls -ld ~/linux-course-07-practice

Cree dos subdirectorios para la práctica y verifique la lista de contenido dentro de ellos.

mkdir ~/linux-course-07-practice/drafts ~/linux-course-07-practice/archive

ls ~/linux-course-07-practice

En este momento, en la lista aparecen archive y drafts. mkdir -p es útil si se desea crear rutas más profundas de una vez, pero como también se permiten directorios existentes, no se utilizará en esta práctica.

Crear y verificar un archivo vacío

Si se da un nombre de archivo que no existe en touch, se creará un archivo vacío. Si se ejecuta en un archivo que ya existe, en lugar de crear uno nuevo, puede actualizar las marcas de tiempo de acceso y modificación, por lo que no debe considerarse como un “comando que solo crea archivos nuevos”.

touch ~/linux-course-07-practice/drafts/notes.txt

ls -l ~/linux-course-07-practice/drafts/notes.txt

Como el archivo se acaba de crear, en ls -l el tamaño del archivo generalmente se muestra como 0 bytes. Los permisos y la fecha dependen de la configuración del sistema. touch no escribe contenido en el archivo; para escribir contenido, se necesita un editor u otro comando.

Verificar la diferencia entre copiar y mover

cp deja el original y crea una nueva copia. El siguiente comando copia el archivo de drafts a archive. -i es la opción de GNU cp que pregunta antes de sobrescribir si ya existe un destino con el mismo nombre.

cp -i ~/linux-course-07-practice/drafts/notes.txt ~/linux-course-07-practice/archive/notes.txt

ls -1 ~/linux-course-07-practice/drafts

ls -1 ~/linux-course-07-practice/archive

La salida de los dos comandos ls -1 mencionados arriba es la siguiente en orden. Cada uno de ellos deja notes.txt en drafts y archive respectivamente. Modificar el contenido del archivo no sincroniza automáticamente los dos archivos.

notes.txt

notes.txt

mv mueve el archivo a otra ubicación o cambia su nombre en el mismo directorio. El siguiente comando cambia el nombre del archivo original a notes-old.txt. El nombre de la copia guardada permanece igual.

mv -i ~/linux-course-07-practice/drafts/notes.txt ~/linux-course-07-practice/drafts/notes-old.txt

ls -1 ~/linux-course-07-practice/drafts

ls -1 ~/linux-course-07-practice/archive

Esta vez, la primera línea es notes-old.txt del drafts, y la segunda línea es notes.txt del archive. Es decir, solo cambia el nombre del original y la copia se mantiene.

notes-old.txt

notes.txt

Si el último argumento de cp o mv es un directorio existente, se colocará dentro con el mismo nombre, por lo que debe verificar antes si el destino es un archivo o un directorio. Incluso usando -i, revise el nombre y la ruta antes de confirmar.

Eliminar archivos y directorios vacíos

rm elimina los archivos especificados. Por defecto, no los envía a la papelera, así que primero verifique la ruta con ls. El siguiente -i solicita confirmación antes de eliminar. Cuando aparezca la pregunta, verifique el nombre del archivo y continúe solo si corresponde.

ls -l ~/linux-course-07-practice/drafts/notes-old.txt

rm -i ~/linux-course-07-practice/drafts/notes-old.txt

Si ha aceptado eliminar, drafts está vacío. Practique con rmdir, que solo elimina directorios vacíos.

rmdir ~/linux-course-07-practice/drafts

ls ~/linux-course-07-practice

En la última lista queda archive. Como archive contiene a notes.txt, rmdir archive falla. Conserve el material de práctica y, cuando ya no lo necesite, verifique la ruta exacta y organícelo por separado. En la etapa inicial, no se recomienda eliminar todo el directorio de una vez con rm -rf.

Cosas a verificar antes de trabajar

  • Ubicación actual: Cuando use rutas relativas, verifique el directorio de referencia con pwd.
  • Destino: Verifique el archivo o directorio mismo y su nombre con ls -ld.
  • Sobrescribir: Haga una copia de seguridad de los archivos importantes antes de copiar o mover, y verifique si hay nombres iguales en el destino.
  • Eliminar: rm no proporciona medios de recuperación por defecto, así que no intente adivinar la ruta de forma abreviada.

Las diversas opciones y excepciones según el comando se pueden consultar en los artículos detallados de touch, mkdir, cp, mv, rm y rmdir.

Documentación oficial

Consulte el manual oficial de GNU Coreutils para conocer el funcionamiento y las opciones exactas de cada comando. Se recomienda verificar nuevamente las opciones en la implementación instalada mediante man o --help.