rm, cp, y mvSabemos cómo crear directorios en el árbol del sistema de archivos, cambiar la ubicación del directorio actual dentro de ese árbol y crear y editar archivos de texto. Ahora aprenderemos algunos comandos de Unix para administrar y mantener nuestros archivos de texto.
Los siguientes comandos de Unix se pueden utilizar para eliminar (eliminar), copiar y mover o cambiar el nombre de un archivo.
nombre_archivo]nombre_archivo.
nombre_archivo_original] [nuevo_nombre_archivo]nombre_archivo_original en
nuevo_nombre_archiv.nombre_archivo_original] [nuevo_nombre_archivo]nombre_archivo_original en
nuevo_nombre_archivo.rm
El comando rm funciona de manera muy similar al comando rmdir, solo que toma un archivo en lugar de un directorio como argumento.
cp
El comando cp se comporta de manera diferente dependiendo de si su segundo argumento es un archivo o un directorio. Por ejemplo, dado un directorio, dir, con subdirectorio, subdir y que contiene el archivo de texto, file.txt:
dir ├── archivo.txt └── subdir
El Comando:
$ cp archivo.txt nuevo_archivo.txt
ejecutar dentro del directorio dir creará un nuevo_archivo.txt en el directorio.
dir ├── archivo.txt ├── nuevo_archivo.txt └── subdir
mientras que el comando:
$ cp archivo.txt subdir
creara una copia de archivo.txt con el mismo nombre en el directorio subdir.
dir
├── archivo.txt
└── subdir
└── archivo.txt
mv
El comando mv se utiliza para cambiar la ubicación de un archivo o directorio, así como para cambiar el nombre de un archivo o directorio sin cambiar su ubicación.
Suponga que el directorio de trabajo actual se llama dir y que contiene dos subdirectorios y un archivo de texto de la siguiente manera:
dir ├── archivo.txt ├── subdir1 └── subdir2
Ejecutando:
$ mv archivo.txt renambrado.txt
desde dentro del directorio dir da como resultado un nuevo nombre para archivo.txt en la misma ubicación:
dir ├── renombrado.txt ├── subdir1 └── subdir2
mientras:
$ mv renombrado.txt subdir1
da como resultado una nueva ubicación para renombrado.txt sin cambiar su nombre:
dir ├── subdir1 │ └── renombrado.txt └── subdir2
En los ejercicios verás cómo cambiar el nombre y la ubicación al mismo tiempo.
rm -rf
El enfoque que hemos adoptado hasta ahora para administrar directorios y archivos se puede comparar con hojas que crecen en los extremos de una rama (mkdir) y se podan una a la vez en la punta (rmdir y rm). Ahora buscamos una forma de cortar secciones enteras de nuestro árbol del sistema de archivos con un machete.
Ya hemos visto un ejemplo de un command argument (también llamado indicador de comando, opción de comando o cambio de comando) con el comando ls -l. Comenzando con la siguiente estructura de directorios:
dir2 ├── sub1 ├── sub2 │ ├── subsub1 │ │ └── subsubsub1 │ │ └── archivo2.txt │ └── subsub2 │ └── archivo1.txt └── sub3
Ejecutando el siguiente comando desde el directorio dir2:
$ rm -rf sub2
resulta en:
dir2 ├── sub1 └── sub3
Podando
el árbol del sistema de archivos en sub2 y eliminándolo y todos los directorios y archivos dentro de él y sus descendientes.
Suponiendo que tiene el archivo word.txt que creó en la lección anterior, escriba lo siguiente en el símbolo del sistema de Unix:
$ cp word.txt word2.txt
Utilice el comando ls para verificar que ahora tiene tanto word.txt como word2.txt. Use ls -l y verá que son del mismo tamaño. Edite word2.txt para ver que tiene el mismo contenido que word.txt. Ahora ejecuta:
$ rm word.txt
Nuevamente, enumere los archivos en su directorio de trabajo actual con ls para confirmar que word.txt se ha eliminado.
Finalmente, use el comando mv para cambiar el nombre del archivo a word.txt
La siguiente imagen muestra un árbol de directorios relacionado con alimentos y grupos de alimentos.
Después de que le dijeran que creara este directorio, su asistente lo intentó, pero cometió numerosos errores. Descargue alimentos.tgz y ejecute el siguiente comando en el indicador de bash en el mismo directorio con el archivo:
$ tar xzvf alimentos.tgz
Esto creará un árbol de directorios que se verá así:
alimentos ├── carnes │ ├── aves_de_corral.txt │ ├── carnes_rojas.txt │ └── verduras │ ├── hongos.txt │ ├── legumbres.txt │ ├── raices.txt │ ├── vegetales_verdes.txt │ └── verduras_crucíferas.txt ├── cereales │ ├── frijoles.txt │ └── legumbres.txt ├── cheetos.txt ├── frutas │ ├── frutas.txt │ ├── lacceoses.txt │ ├── pescados_mariscos.txt │ └── skittles.txt ├── granos.txt └── lacteos_y_huevos └── huegos.txt
Su trabajo consiste en corregir todos los errores que cometió su asistente y colocar el directorio de alimentos en el formulario que se muestra en la captura de pantalla.