Introducción
Linux organiza los datos como un árbol de directorios y archivos. Los comandos operan sobre ubicaciones de ese árbol, por lo que trabajar con archivos de forma fiable comienza con tres preguntas: ¿Dónde estoy? ¿Qué hay aquí? ¿Qué ruta identifica el elemento que quiero?
En este laboratorio desarrollará estas ideas paso a paso en /home/labex/project/file-basics. Se desplazará mediante rutas absolutas y relativas, inspeccionará entradas visibles y ocultas, creará archivos y directorios, seleccionará nombres con comodines y copiará, moverá y eliminará archivos de práctica de forma segura. El último paso presenta atajos de terminal que agilizan estas operaciones sin cambiar su significado.
Localice su directorio de trabajo
En este paso, relacionará el prompt de la terminal con el directorio en el que se ejecutan los comandos.
El shell siempre tiene un directorio de trabajo actual. Las rutas relativas parten de ese directorio, por lo que comprobar su ubicación evita muchos errores de principiante. Desplácese al espacio de trabajo de este laboratorio mediante su ruta completa:
cd /home/labex/project/file-basics
Una ruta que comienza por / es una ruta absoluta. Parte de la raíz del sistema de archivos e identifica la misma ubicación independientemente del punto desde el que haya comenzado.
Muestre el directorio de trabajo:
pwd
Debería ver:
/home/labex/project/file-basics
Guarde esa ubicación como evidencia. El operador > redirige la salida al archivo starting-location.txt; como la salida se envía al archivo, esta vez no se muestra nada:
pwd > starting-location.txt
Lea el archivo para confirmar lo que se guardó:
cat starting-location.txt
La pantalla de la terminal y el archivo deberían mostrar la misma ruta absoluta.
Navegue mediante rutas relativas
En este paso, se desplazará por directorios cercanos usando rutas relativas y los nombres especiales . y ...
Vuelva al espacio de trabajo si es necesario:
cd /home/labex/project/file-basics
Muestre sus entradas visibles:
ls
Debería ver path-map y starting-location.txt. Entre en path-map mediante una ruta relativa, es decir, una ruta interpretada a partir del directorio actual:
cd path-map
pwd
Ahora entre en north y lea su archivo de referencia:
cd north
cat reference.txt
La salida es north reference. El nombre .. representa el directorio padre, un nivel por encima de la ubicación actual:
cd ..
Desplácese desde path-map hasta su directorio hijo south:
cd south
cat reference.txt
El nombre . representa el directorio actual. Guarde la ubicación absoluta actual en la raíz del laboratorio combinando pwd con un destino relativo que sube dos niveles:
pwd > ../../relative-location.txt
Vuelva directamente a la raíz del laboratorio mediante su ruta absoluta:
cd /home/labex/project/file-basics
cat relative-location.txt
La ruta guardada debería terminar en /path-map/south. Ha utilizado tanto desplazamientos relativos como una ruta absoluta para regresar.
Inspeccione el contenido de los directorios
En este paso, usará las opciones de ls para mostrar nombres ocultos y detalles de los archivos.
Ejecute un listado sencillo en la raíz del laboratorio:
cd /home/labex/project/file-basics
ls
Normalmente, Linux oculta los nombres que comienzan por un punto. La opción -a significa «all» e incluye esas entradas:
ls -a
Ahora debería ver .practice-note, además de . para el directorio actual y .. para su directorio padre.
La opción -l genera un listado largo con permisos, propietario, tamaño, fecha y nombre:
ls -l
Combine las opciones para inspeccionar todas las entradas en formato largo:
ls -la
Cada línea de la salida comienza con un campo de tipo y permisos. Una d inicial identifica un directorio; un - inicial identifica un archivo normal. Los permisos se estudiarán en profundidad más adelante.
Guarde los nombres, incluidas las entradas ocultas. En este espacio de trabajo controlado, ls ya los muestra en orden alfabético, por lo que todavía no necesita ningún comando adicional de ordenación:
ls -A > all-names.txt
A diferencia de -a, -A omite las entradas especiales . y .., pero conserva los demás nombres ocultos. Muestre el resultado:
cat all-names.txt
La lista debería incluir .practice-note, path-map y los archivos creados en los pasos anteriores.
Cree directorios y archivos
En este paso, creará un pequeño árbol de proyecto y escribirá texto en archivos normales.
mkdir crea un directorio. Su opción -p también crea los directorios padre que falten, por lo que un solo comando puede construir una ruta anidada:
cd /home/labex/project/file-basics
mkdir -p workspace/docs workspace/logs
Esto crea workspace y sus directorios hijos docs y logs. Inspeccione el resultado:
find workspace -maxdepth 2 -type d
touch crea un archivo vacío cuando el nombre no existe. Cree dos archivos a la vez:
touch workspace/docs/guide.txt workspace/logs/app.log
Escriba contenido en la guía. Un > individual reemplaza el destino con la salida del comando:
echo "Linux file practice" > workspace/docs/guide.txt
Añada una segunda línea con >>, que conserva el contenido existente:
echo "Paths make locations predictable" >> workspace/docs/guide.txt
Lea el archivo completo:
cat workspace/docs/guide.txt
Debería ver ambas líneas en su orden original. El archivo vacío app.log también existe y está listo para la práctica posterior con comodines.
Seleccione nombres con comodines
En este paso, creará grupos de archivos y los seleccionará mediante patrones de nombres.
Entre en el directorio de registros:
cd /home/labex/project/file-basics/workspace/logs
La expansión de llaves genera varios nombres literales antes de que se ejecute el comando. Cree registros numerados:
touch app{1..3}.log worker{1..2}.log notes.txt
El shell expande {1..3} a 1 2 3, por lo que app{1..3}.log se convierte en tres argumentos.
Un comodín es diferente: coincide con nombres que ya existen. * coincide con cualquier secuencia de caracteres:
ls *.log
La salida incluye todos los nombres que terminan en .log, pero no notes.txt.
El comodín ? coincide exactamente con un carácter. Muestre únicamente los registros app numerados:
ls app?.log
El shell expande los patrones de nombres de archivo en orden alfabético. printf imprime cada nombre expandido en una línea independiente y > guarda esas líneas:
printf '%s\n' *.log > matched-logs.txt
cat matched-logs.txt
La lista guardada debería contener app.log, app1.log, app2.log, app3.log, worker1.log y worker2.log. Poner *.log entre comillas impediría la expansión del comodín, por lo que aquí el patrón se deja intencionadamente sin comillas.
Copie, mueva y elimine archivos de forma segura
En este paso, comparará los efectos de cp, mv y rm antes de usarlos en el desafío siguiente.
Vuelva al directorio del espacio de trabajo:
cd /home/labex/project/file-basics/workspace
cp SOURCE DESTINATION crea otro archivo y deja el archivo de origen en su lugar. Cree una copia de seguridad de la guía:
cp docs/guide.txt docs/guide-backup.txt
Confirme que los dos archivos tienen contenido idéntico. cmp compara dos archivos byte por byte. No muestra nada cuando coinciden; un mensaje de error indicaría que son diferentes:
cmp docs/guide.txt docs/guide-backup.txt
mv SOURCE DESTINATION traslada o cambia el nombre de un elemento. Mueva la copia de seguridad a la raíz del espacio de trabajo y asígnele un nombre más claro:
mv docs/guide-backup.txt archived-guide.txt
Muestre ambas ubicaciones:
ls docs
ls
Debería ver guide.txt dentro de docs y archived-guide.txt en el directorio actual.
rm elimina permanentemente un archivo indicado por su nombre; normalmente no existe una papelera de reciclaje en la terminal. Elimine únicamente el archivo de notas desechable:
rm logs/notes.txt
Muestre de nuevo el directorio para comprobar la eliminación:
ls logs
notes.txt ya no debería aparecer. La guía original y su copia trasladada siguen disponibles, mientras que el único archivo desechable indicado explícitamente ha desaparecido.
Trabaje más rápido con atajos de terminal
En este paso, practicará cuatro controles de terminal que reducen la escritura y ayudan a recuperarse cuando un comando continúa ejecutándose.
Entre primero en el directorio de documentos:
cd /home/labex/project/file-basics/workspace/docs
Ejecute un comando que volverá a utilizar:
cat guide.txt
Pulse la flecha arriba (Up Arrow) una vez. El comando anterior cat guide.txt debería volver a aparecer en el prompt. Pulse Enter para ejecutarlo de nuevo. Recuperar comandos evita tener que escribirlos otra vez y aún le permite editar la línea recuperada antes de ejecutarla.
A continuación, escriba cat g sin pulsar Enter y después pulse Tab. Como solo coincide guide.txt, el shell debería completar el nombre del archivo. Pulse Enter para ejecutar el comando completado.
Ahora inicie un comando que espera continuamente:
tail -f /dev/null
tail -f sigue un archivo y espera datos nuevos. /dev/null nunca proporciona líneas útiles, por lo que el comando parece permanecer en silencio. Pulse Ctrl+C para enviar una interrupción y volver al prompt. Esta es la respuesta estándar inicial cuando debe detener un comando en primer plano.
Pulse Ctrl+L para borrar la salida antigua de la pantalla visible. Al igual que clear, esto no elimina archivos ni el historial de comandos.
Cree un marcador de finalización después de volver al prompt:
echo "Shortcuts practiced" > /home/labex/project/file-basics/shortcuts-complete.txt
cat /home/labex/project/file-basics/shortcuts-complete.txt
El marcador confirma que recuperó correctamente el prompt después de la práctica interactiva.
Resumen
Ha aprendido cómo el directorio de trabajo y las rutas controlan las operaciones con archivos. Se desplazó mediante rutas absolutas y relativas, inspeccionó entradas ocultas y metadatos, creó un árbol de directorios y archivos de texto, seleccionó nombres con comodines y comparó la copia, el traslado y la eliminación permanente. También practicó la recuperación de comandos, la finalización con Tab, Ctrl+C y Ctrl+L. En el próximo laboratorio aprenderá a encontrar ayuda fiable cuando aparezca un comando o una opción que no conozca.



