Introducción
En este laboratorio, adquirirá experiencia práctica en la gestión de archivos y directorios utilizando herramientas esenciales de línea de comandos en un entorno RHEL. Aprenderá a explorar su ubicación actual y listar contenidos con pwd y ls, navegar por directorios y crear archivos con cd y touch, y organizar archivos y directorios de manera efectiva con mkdir, cp, mv y rm.
Además, descubrirá cómo crear enlaces entre archivos utilizando ln (tanto enlaces duros como simbólicos) y seleccionar archivos de manera eficiente con expansiones de shell, lo que le proporcionará habilidades fundamentales para la gestión de archivos en la línea de comandos.
Explore su ubicación actual y liste el contenido con pwd y ls
En este paso, aprenderá a explorar su ubicación actual dentro del sistema de archivos y a listar su contenido utilizando los comandos pwd y ls. Comprender su directorio de trabajo actual y poder ver su contenido son habilidades fundamentales para navegar y administrar archivos desde la línea de comandos.
Primero, determinemos su directorio de trabajo actual utilizando el comando pwd. pwd significa "print working directory" (imprimir directorio de trabajo) y muestra el nombre de ruta completo de su ubicación actual en el sistema de archivos.
pwd
Debería ver una salida similar a esta, indicando su directorio actual:
/home/labex
A continuación, utilizará el comando ls para listar el contenido de su directorio actual. ls significa "list" (listar) y lista el contenido de directorios para el directorio especificado o, si no se proporciona ningún directorio, para el directorio de trabajo actual.
ls
Debería ver una salida que muestre el contenido de su directorio de inicio:
project
El comando ls tiene varias opciones útiles para mostrar más información sobre archivos y directorios.
La opción
-l(formato de listado largo) proporciona información detallada sobre cada archivo y directorio, incluyendo permisos, número de enlaces duros, propietario, grupo, tamaño y fecha de última modificación.ls -lDebería ver una salida similar a esta:
total 0 drwxr-xr-x 2 labex labex 6 Aug 27 2024 projectLa opción
-a(todos los archivos) lista todos los archivos, incluidos los archivos ocultos. En Linux, los nombres de archivo que comienzan con un punto (.) se consideran ocultos. Además,.se refiere al directorio actual y..se refiere al directorio padre.ls -aDebería ver una salida similar a esta, incluyendo archivos de configuración ocultos:
. .. .bash_history .bash_logout .bash_profile .bashrc .tmux.conf projectCombinar
-ly-acomo-laproporciona un listado largo de todos los archivos, incluidos los ocultos.ls -laEsto mostrará información detallada para todos los archivos y directorios, incluidos los ocultos:
total 20 drwx------ 1 labex labex 72 Jun 4 03:12 . drwxr-xr-x 1 root root 19 Aug 27 2024 .. -rw------- 1 labex labex 31 Jun 4 03:13 .bash_history -rw-r--r-- 1 labex labex 18 Feb 15 2024 .bash_logout -rw-r--r-- 1 labex labex 141 Feb 15 2024 .bash_profile -rw-r--r-- 1 labex labex 877 Jun 4 03:12 .bashrc -rw-r--r-- 1 labex labex 68 Aug 27 2024 .tmux.conf drwxr-xr-x 2 labex labex 6 Aug 27 2024 projectLa opción
-R(recursiva) lista el contenido de todos los subdirectorios de forma recursiva. Para demostrar esto, primero crearemos un subdirectorio.mkdir mydirAhora, use
ls -Rpara ver el listado recursivo.ls -RDebería ver listados tanto el directorio
mydircomoproject, seguidos de su contenido:.: mydir project ./mydir: ./project:Finalmente, eliminemos el directorio
mydirpara limpiar el entorno para los siguientes pasos.rmdir mydirEste comando solo funciona para directorios vacíos. Aprenderá más sobre
rmdiryrmen un paso posterior.

Navegue por directorios y cree archivos con cd y touch
En este paso, aprenderá a cambiar su directorio de trabajo actual utilizando el comando cd y a crear archivos vacíos utilizando el comando touch. Estos comandos son esenciales para organizar sus archivos y navegar por el sistema de archivos de manera eficiente.
Primero, verifiquemos su ubicación actual y naveguemos al directorio project que se mostró en el paso 1.
pwd
Debería ver /home/labex como salida (su directorio de inicio).
Ahora, naveguemos al directorio project usando el comando cd:
cd project
Verifique su nueva ubicación:
pwd
Ahora debería ver /home/labex/project como salida.
Ahora, creemos un nuevo directorio llamado documents dentro de su directorio project actual. Utilizará el comando mkdir, que encontró brevemente en el paso anterior.
mkdir documents
Verifique que se ha creado el directorio documents:
ls
Debería ver documents listado en la salida.
A continuación, utilizará el comando cd para cambiar el directorio de trabajo actual de su shell al directorio documents recién creado.
cd documents
Después de cambiar de directorio, es una buena práctica confirmar su nueva ubicación usando pwd:
pwd
La salida ahora debería ser /home/labex/project/documents.
El comando cd ofrece varias opciones convenientes para la navegación:
cd -: Este comando cambia al directorio anterior en el que se encontraba. Intentémoslo.cd -Debería haber vuelto a
/home/labex/project. Verifíquelo conpwd:pwdAhora, use
cd -nuevamente para regresar a/home/labex/project/documents:cd -Y verifique con
pwd:pwdcd ..: Este comando utiliza el directorio oculto..(dos puntos) para subir un nivel al directorio padre, sin necesidad de conocer el nombre exacto del padre.cd ..Ahora debería estar en
/home/labex/project. Verifíquelo conpwd:pwdPuede encadenar
..para subir varios niveles. Por ejemplo, para ir a/home/labexdesde/home/labex/project:cd ../Verifique su ubicación:
pwdDebería estar en
/home/labex.cd(sin argumentos): Este comando siempre lo llevará de regreso a su directorio de inicio, que es/home/labexpara el usuariolabex.cdVerifique su ubicación:
pwdDebería estar en
/home/labex.
Ahora, naveguemos de regreso a su directorio ~/project/documents para crear algunos archivos.
cd ~/project/documents
Verifique su ubicación:
pwd
La salida debería ser /home/labex/project/documents.
Ahora utilizará el comando touch. El comando touch actualiza la marca de tiempo de un archivo a la fecha y hora actuales sin modificarlo de otra manera. Este comando también es muy útil para crear archivos vacíos.
Creemos dos archivos vacíos llamados report.txt y notes.txt en el directorio ~/project/documents.
touch report.txt notes.txt
Verifique que los archivos se han creado usando ls -l:
ls -l
Debería ver una salida similar a esta, mostrando los archivos recién creados:
total 0
-rw-rw-r--. 1 labex labex 0 Mar 7 HH:MM report.txt
-rw-rw-r--. 1 labex labex 0 Mar 7 HH:MM notes.txt
Finalmente, creemos un nuevo directorio llamado drafts dentro de ~/project/documents y luego creemos un archivo dentro de él.
mkdir drafts
cd drafts
touch draft_v1.txt
Verifique la creación del archivo:
ls -l
Debería ver draft_v1.txt listado.
Ahora, navegue de regreso a su directorio ~/project usando un solo comando cd.
cd ~/project
Verifique su ubicación:
pwd
La salida debería ser /home/labex/project.
Organice archivos y directorios con mkdir, cp, mv y rm
En este paso, aprenderá a organizar sus archivos y directorios de manera efectiva utilizando los comandos mkdir (make directory - crear directorio), cp (copy - copiar), mv (move/rename - mover/renombrar) y rm (remove - eliminar). Estos comandos son cruciales para mantener un sistema de archivos limpio y estructurado.
Primero, asegúrese de estar en su directorio ~/project.
cd ~/project
Verifique su ubicación actual:
pwd
La salida debería ser /home/labex/project.
mkdir: Creación de directorios
Ya ha utilizado mkdir para crear un solo directorio. Ahora, exploremos opciones más avanzadas de mkdir.
Puede crear varios directorios a la vez listándolos como argumentos:
mkdir reports presentations
Verifique su creación:
ls
Debería ver documents, presentations y reports listados.
La opción -p (parents - padres) del comando mkdir es muy útil para crear cualquier directorio padre faltante para el destino solicitado. Esto evita errores si intenta crear un subdirectorio dentro de un directorio padre inexistente.
Creemos una estructura de directorio anidada: projects/alpha/docs.
mkdir -p projects/alpha/docs
Ahora, use ls -R para ver la estructura anidada recién creada:
ls -R projects
Debería ver:
projects:
alpha
projects/alpha:
docs
projects/alpha/docs:
cp: Copia de archivos y directorios
El comando cp copia archivos y directorios. Al copiar un archivo, crea un duplicado ya sea en el directorio actual o en un directorio diferente especificado.
Copiemos report.txt desde documents al directorio reports.
cp documents/report.txt reports/
Verifique la copia listando el contenido del directorio reports:
ls reports
Debería ver report.txt en el directorio reports.
Si un archivo con el mismo nombre existe en el directorio de destino, cp lo sobrescribirá por defecto.
Para copiar un directorio y su contenido, debe usar la opción -r (recursive - recursivo). Por defecto, cp ignora los directorios si no se especifica -r.
Copiemos todo el directorio documents dentro de projects/alpha/.
cp -r documents projects/alpha/
Verifique la copia recursiva:
ls -R projects/alpha/documents
Debería ver el contenido del directorio documents (incluyendo notes.txt, drafts y drafts/draft_v1.txt) duplicado ahora dentro de projects/alpha/documents.
projects/alpha/documents:
drafts notes.txt report.txt
projects/alpha/documents/drafts:
draft_v1.txt
mv: Mover y renombrar archivos y directorios
El comando mv mueve archivos de una ubicación a otra. También se puede usar para renombrar archivos o directorios. Si piensa en la ruta absoluta de un archivo como su nombre completo, entonces mover un archivo es efectivamente lo mismo que renombrar un archivo. El contenido de los archivos que se mueven permanece sin cambios.
Renombremos notes.txt en el directorio documents a meeting_notes.txt.
mv documents/notes.txt documents/meeting_notes.txt
Verifique el cambio de nombre:
ls documents
Ahora debería ver meeting_notes.txt en lugar de notes.txt.
Ahora, movamos report.txt del directorio reports a documents/drafts.
mv reports/report.txt documents/drafts/
Verifique el movimiento:
ls reports
El directorio reports ahora debería estar vacío.
ls documents/drafts
Debería ver draft_v1.txt y report.txt en el directorio documents/drafts.
La opción -v para mv muestra una salida detallada de las operaciones del comando, lo que puede ser útil para la confirmación.
mv -v documents/meeting_notes.txt documents/final_notes.txt
Verá una salida como:
renamed 'documents/meeting_notes.txt' -> 'documents/final_notes.txt'
rm: Eliminar archivos y directorios
El comando rm elimina archivos. Tenga cuidado con rm, ya que los archivos eliminados normalmente no se pueden recuperar desde la línea de comandos.
Creemos un archivo temporal para practicar rm.
touch temp_file.txt
Ahora, elimine temp_file.txt:
rm temp_file.txt
Verifique su eliminación:
ls
temp_file.txt ya no debería aparecer en la lista.
Por defecto, rm no elimina directorios. Si intenta eliminar un directorio no vacío sin la opción correcta, obtendrá un error.
rm presentations
Verá un error:
rm: cannot remove 'presentations': Is a directory
Para eliminar directorios y su contenido, debe usar la opción -r (recursive - recursivo). El comando rm -r recorre primero cada subdirectorio y elimina individualmente sus archivos antes de eliminar cada directorio.
Eliminemos el directorio presentations y su contenido (que actualmente está vacío, pero -r todavía se requiere para directorios).
rm -r presentations
Verifique su eliminación:
ls
presentations ya no debería aparecer en la lista.
La opción -i para rm solicita interactivamente confirmación antes de eliminar cada archivo. Esta es una buena medida de seguridad.
Creemos algunos archivos temporales más y luego eliminémoslos interactivamente.
touch file1.txt file2.txt
rm -i file1.txt file2.txt
Se le pedirá confirmación para cada archivo:
rm: remove regular empty file 'file1.txt'? y
rm: remove regular empty file 'file2.txt'? y
Escriba y y presione Enter en cada solicitud para confirmar la eliminación.
La opción -f (force - forzar) fuerza la eliminación sin solicitar confirmación al usuario. Si especifica tanto -i como -f, -f tiene prioridad. Use -f con extrema precaución.
Finalmente, limpiemos el directorio projects.
rm -r projects
Verifique que projects ha desaparecido:
ls
rmdir: Eliminar directorios vacíos
También puede usar el comando rmdir para eliminar directorios vacíos. Fallará si el directorio no está vacío.
Creemos un directorio vacío y eliminémoslo con rmdir.
mkdir empty_dir
rmdir empty_dir
Verifique su eliminación:
ls
empty_dir ya no debería aparecer en la lista.
Si intenta eliminar un directorio no vacío con rmdir, fallará:
mkdir test_dir
touch test_dir/test_file.txt
rmdir test_dir
Verá un error:
rmdir: failed to remove 'test_dir': Directory not empty
Recuerde usar rm -r para directorios no vacíos.
rm -r test_dir
Cree enlaces entre archivos con ln (enlaces duros y simbólicos)
En este paso, aprenderá sobre la creación de enlaces entre archivos utilizando el comando ln. Los sistemas de archivos de Linux admiten dos tipos de enlaces: enlaces duros (hard links) y enlaces simbólicos (o soft links). Comprender la diferencia entre ellos es crucial para una gestión de archivos eficaz.
Primero, asegúrese de estar en su directorio ~/project.
cd ~/project
Verifique su ubicación actual:
pwd
La salida debería ser /home/labex/project.
Creemos un nuevo archivo llamado original_file.txt con algo de contenido para trabajar.
echo "This is the content of the original file." > original_file.txt
Verifique el contenido del archivo:
cat original_file.txt
Enlaces duros (Hard Links)
Un enlace duro es esencialmente otro nombre para un archivo existente. Apunta directamente a los mismos datos (inodo) en el dispositivo de almacenamiento que el archivo original. Después de crear un enlace duro, no puede notar la diferencia entre el nuevo enlace duro y el nombre original del archivo; son formas igualmente válidas de acceder a los mismos datos.
Puede determinar si un archivo tiene varios enlaces duros utilizando el comando ls -l. La segunda columna en la salida de ls -l muestra el número de enlaces duros al archivo.
Inicialmente, original_file.txt tiene un enlace duro (él mismo):
ls -l original_file.txt
Debería ver una salida similar a esta, donde el número 1 indica un enlace duro:
-rw-rw-r--. 1 labex labex 35 Mar 7 HH:MM original_file.txt
Ahora, creemos un enlace duro a original_file.txt llamado hard_link.txt usando el comando ln.
ln original_file.txt hard_link.txt
Compruebe el recuento de enlaces duros para ambos archivos:
ls -l original_file.txt hard_link.txt
Ahora debería ver el recuento de enlaces duros como 2 para ambos archivos, lo que indica que apuntan a los mismos datos:
-rw-rw-r--. 2 labex labex 35 Mar 7 HH:MM hard_link.txt
-rw-rw-r--. 2 labex labex 35 Mar 7 HH:MM original_file.txt
Para confirmar que apuntan a los mismos datos, puede usar la opción ls -i para listar el número de inodo de cada archivo. Si los archivos están en el mismo sistema de archivos y sus números de inodo son los mismos, entonces los archivos son enlaces duros que apuntan al mismo contenido de archivo de datos.
ls -i original_file.txt hard_link.txt
Los números de inodo deberían ser idénticos:
1234567 original_file.txt 1234567 hard_link.txt
Si modifica el contenido de un archivo, los cambios se reflejarán en el otro, porque son los mismos datos subyacentes.
echo "Adding new line." >> hard_link.txt
cat original_file.txt
Verá:
This is the content of the original file.
Adding new line.
Incluso si se elimina el archivo original, aún puede acceder al contenido del archivo siempre que exista al menos otro enlace duro. Los datos se eliminan del almacenamiento solo cuando se elimina el último enlace duro, lo que hace que el contenido del archivo no sea referenciado por ningún enlace duro.
Eliminemos original_file.txt:
rm original_file.txt
Ahora, intente acceder a hard_link.txt:
cat hard_link.txt
Aún verá el contenido:
This is the content of the original file.
Adding new line.
El recuento de enlaces duros para hard_link.txt ahora debería ser 1:
ls -l hard_link.txt
Limitaciones de los enlaces duros:
- Solo puede usar enlaces duros con archivos regulares. No puede usar el comando
lnpara crear un enlace duro a un directorio o archivo especial. - Solo puede usar enlaces duros si ambos archivos están en el mismo sistema de archivos. Puede usar el comando
dfpara listar los sistemas de archivos.
Enlaces simbólicos (Symbolic Links)
Un enlace simbólico (también llamado "enlace suave" o "symlink") es un tipo especial de archivo que apunta a otro archivo o directorio por su ruta. Es similar a un acceso directo en Windows. A diferencia de los enlaces duros, los enlaces simbólicos no apuntan directamente a los datos; apuntan al nombre del archivo o directorio de destino.
Creemos un nuevo archivo llamado target_file.txt para nuestro enlace simbólico.
echo "This is the target file for the symbolic link." > target_file.txt
Ahora, cree un enlace simbólico llamado sym_link.txt que apunte a target_file.txt usando el comando ln -s.
ln -s target_file.txt sym_link.txt
Compruebe los detalles del enlace simbólico usando ls -l:
ls -l target_file.txt sym_link.txt
Notará algunas diferencias:
- El primer carácter de la lista larga para
sym_link.txtesl(letral), lo que indica que es un enlace simbólico. - La salida muestra
sym_link.txt -> target_file.txt, mostrando explícitamente a qué apunta. - El tamaño del enlace simbólico es muy pequeño (es solo la longitud de la ruta de destino), no el tamaño del archivo de destino.
- El recuento de enlaces duros para
sym_link.txtes1.
-rw-rw-r--. 1 labex labex 45 Mar 7 HH:MM target_file.txt
lrwxrwxrwx. 1 labex labex 14 Mar 7 HH:MM sym_link.txt -> target_file.txt
Puede acceder al contenido de target_file.txt a través de sym_link.txt:
cat sym_link.txt
Verá:
This is the target file for the symbolic link.
Diferencias clave y comportamientos de los enlaces simbólicos:
Enlace entre sistemas de archivos: Los enlaces simbólicos pueden enlazar dos archivos en diferentes sistemas de archivos.
Enlace a directorios: Los enlaces simbólicos pueden apuntar a un directorio, no solo a un archivo regular. Creemos un enlace simbólico a su directorio
documents.ln -s documents doc_shortcutAhora, puede hacer
cdendoc_shortcutcomo si fuera el propio directoriodocuments:cd doc_shortcutVerifique su ubicación. Tenga en cuenta que
pwdpor defecto muestra la ruta del enlace simbólico:pwdSalida:
/home/labex/project/doc_shortcutSi desea que
pwdmuestre la ruta real del directorio al que apunta el enlace simbólico, use la opción-P:pwd -PSalida:
/home/labex/project/documentsAhora, regrese a
~/project:cd ~/projectEnlaces simbólicos "colgantes" (dangling): Cuando se elimina el archivo regular original (el destino), el enlace simbólico todavía existe pero apunta a un archivo faltante. Esto se llama un "enlace simbólico colgante".
Eliminemos
target_file.txt:rm target_file.txtAhora, compruebe
sym_link.txtconls -l:ls -l sym_link.txtVerá que
sym_link.txttodavía existe, pero su destinotarget_file.txtse muestra en rojo o en un color diferente (dependiendo de la configuración de su terminal) para indicar que está roto:lrwxrwxrwx. 1 labex labex 14 Mar 7 HH:MM sym_link.txt -> target_file.txtSi intenta hacer
catal enlace simbólico colgante, fallará:cat sym_link.txtSalida:
cat: sym_link.txt: No such file or directory
Finalmente, limpiemos los archivos y enlaces creados en este paso.
rm hard_link.txt sym_link.txt doc_shortcut
ls
Solo debería ver los directorios documents y reports restantes de pasos anteriores.
Seleccione archivos de forma eficiente con expansiones de shell
En este paso, aprenderá a seleccionar archivos y directorios de manera eficiente utilizando varias características de expansión de shell, incluyendo la coincidencia de patrones (globbing), la expansión de tilde, la expansión de llaves, la expansión de variables y la sustitución de comandos. Estas características le permiten realizar operaciones en múltiples archivos con comandos concisos.
Primero, asegúrese de estar en su directorio ~/project.
cd ~/project
Verifique su ubicación actual:
pwd
La salida debe ser /home/labex/project.
Para demostrar las expansiones de shell, creemos un conjunto de archivos y directorios.
mkdir data
cd data
touch file1.txt file2.log file_a.txt file_b.log report_2023.txt report_2024.log
touch image.jpg document.pdf archive.zip
mkdir dir1 dir2 dir3
cd ..
Ahora, liste el contenido del directorio data para ver los archivos que ha creado:
ls data
Debería ver:
archive.zip dir1 dir2 dir3 document.pdf file1.txt file2.log file_a.txt file_b.log image.jpg report_2023.txt report_2024.log
Coincidencia de Patrones (Globbing)
La coincidencia de patrones, también conocida como globbing, le permite seleccionar archivos basándose en patrones utilizando caracteres especiales llamados metacaracteres.
| Metacarácter | Coincide con | Ejemplo |
|---|---|---|
* |
Cualquier cadena de cero o más caracteres. | *.txt coincide con todos los archivos que terminan en .txt. |
? |
Cualquier carácter único. | file?.txt coincide con file1.txt, fileA.txt, etc. |
[abc...] |
Cualquier carácter dentro de la clase encerrada. | file[12].txt coincide con file1.txt o file2.txt. |
[!abc...] |
Cualquier carácter que NO esté en la clase. | file[!1].txt coincide con fileA.txt pero no con file1.txt. |
[[:alpha:]] |
Cualquier carácter alfabético. | file[[:alpha:]].txt coincide con fileA.txt. |
[[:digit:]] |
Cualquier dígito único del 0 al 9. | file[[:digit:]].txt coincide con file1.txt. |
Probemos algunos ejemplos dentro del directorio data.
Usando
*: Liste todos los archivos que terminan en.txt:ls data/*.txtSalida:
data/file1.txt data/file_a.txt data/report_2023.txtListe todos los archivos que contienen
fileen su nombre:ls data/*file*Salida:
data/file1.txt data/file2.log data/file_a.txt data/file_b.logUsando
?: Liste los archivos que tienen exactamente un carácter antes de.log:ls data/file?.logSalida:
data/file2.logUsando
[]para conjuntos de caracteres: Liste los archivos que comienzan conreport_y tienen2023o2024en su nombre:ls data/report_[2][0][2][34].*Salida:
data/report_2023.txt data/report_2024.logUsando
{}para expansión de llaves (brace expansion): Liste los archivos que comienzan confiley terminan en.txto.log:ls data/file*.{txt,log}Salida:
data/file1.txt data/file2.log data/file_a.txt data/file_b.log
Expansión de Tilde ~
El carácter tilde (~) se expande al directorio principal del usuario actual (/home/labex). Cuando va seguido de un nombre de usuario, se expande al directorio principal de ese usuario.
echo ~
Salida:
/home/labex
echo ~root
Salida:
/root
echo ~/project/data
Salida:
/home/labex/project/data
Expansión de Llaves (Brace Expansion) {}
La expansión de llaves genera cadenas arbitrarias. Es útil para crear listas de archivos o directorios con nombres similares sin tener que escribir cada uno individualmente.
Lista separada por comas: Cree los archivos
report_jan.txt,report_feb.txt,report_mar.txt:touch data/report_{jan,feb,mar}.txtLístelos:
ls data/report_*.txtSalida:
data/report_2023.txt data/report_jan.txt data/report_feb.txt data/report_mar.txtRango de números o letras: Cree los archivos
doc1.txt,doc2.txt,doc3.txt:touch data/doc{1..3}.txtLístelos:
ls data/doc*.txtSalida:
data/doc1.txt data/doc2.txt data/doc3.txtCree los directorios
chapterA,chapterB,chapterC:mkdir data/chapter{A..C}Lístelos:
ls data/chapter*Salida:
data/chapterA data/chapterB data/chapterC
Expansión de Variables
Las variables de shell almacenan valores que pueden expandirse en comandos. Define una variable usando VARNAME=valor y accede a su valor usando $VARNAME o ${VARNAME}.
MY_DIR=data
echo "My directory is: $MY_DIR"
Salida:
My directory is: data
Puede usar variables en comandos:
ls $MY_DIR
La salida será el contenido del directorio data.
Sustitución de Comandos (Command Substitution)
La sustitución de comandos le permite usar la salida de un comando como parte de otro comando. Esto se logra encerrando el comando entre $(comando) o comillas invertidas `comando`. La sintaxis $(comando) generalmente se prefiere ya que puede anidarse.
Obtengamos la fecha actual y usémosla en un nombre de archivo.
touch data/log_$(date +%Y-%m-%d).txt
Liste el directorio data para ver el nuevo archivo:
ls data/log_*.txt
La salida será similar a:
data/log_2024-03-07.txt
También puede usarlo para contar archivos:
echo "There are $(ls data | wc -l) items in the data directory."
La salida será similar a:
There are 19 items in the data directory.
Protección de Argumentos contra la Expansión
A veces, desea evitar que el shell expanda ciertos caracteres. Puede hacerlo utilizando:
Barra invertida (
\): Escapa el siguiente carácter único.echo "The value of \$HOME is your home directory."Salida:
The value of $HOME is your home directory.Comillas simples (
''): Evitan toda expansión de shell dentro de las comillas.echo 'The current date is $(date +%Y-%m-%d).'Salida:
The current date is $(date +%Y-%m-%d).Comillas dobles (
""): Evitan la mayor parte de la expansión de shell, pero permiten la expansión de variables ($VAR) y la sustitución de comandos ($()).MY_DATE=$(date +%Y-%m-%d) echo "Today's date is $MY_DATE."Salida:
Today's date is 2024-03-07.Compare con las comillas simples:
echo 'Today is $MY_DATE.'Salida:
Today's date is $MY_DATE.
Finalmente, limpiemos el directorio data.
rm -r data
Resumen
En este laboratorio, aprendió herramientas fundamentales de la línea de comandos para administrar archivos y directorios en RHEL. Comenzó dominando pwd para identificar su directorio de trabajo actual y ls para listar el contenido de los directorios, incluido el uso de opciones como -l para obtener información detallada y -a para revelar archivos ocultos. Luego progresó a la navegación por el sistema de archivos con cd y la creación de nuevos archivos con touch.
Además, adquirió experiencia en la organización de su sistema de archivos utilizando mkdir para crear directorios, cp para copiar archivos y directorios, mv para moverlos o renombrarlos, y rm para eliminarlos. El laboratorio también cubrió la creación de enlaces duros y simbólicos usando ln, y cómo seleccionar archivos de manera eficiente utilizando expansiones del shell, mejorando su capacidad para administrar archivos y directorios de manera efectiva desde la línea de comandos.



