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