1. Tres reglas antes de empezar
Los comandos de este tema comparten un comportamiento que los distingue de cualquier administrador de archivos gráfico. Conviene tenerlo presente desde la primera línea:
| Regla | Qué significa |
|---|---|
| No hay papelera. | Lo que se borra con rm no va a ningún lugar del que se pueda recuperar. |
| No se pregunta. | Si el destino de una copia o de un movimiento ya existe, se lo reemplaza sin confirmación. |
| No se avisa. | Cuando todo sale bien, el comando no escribe nada. No hay un «3 archivos copiados». |
No es descuido de diseño. Estos comandos se pensaron para ser usados también por otros programas y dentro de scripts, donde una pregunta detendría todo. El sistema supone que quien escribe la orden sabe lo que pide. A cambio, cada comando tiene opciones para pedirle que pregunte o que informe, y las veremos junto con cada uno.
| Comando | Nombre | Hace | ¿Puede destruir datos? |
|---|---|---|---|
touch | touch, tocar | Crea un archivo vacío. | No |
mkdir | make directory | Crea un directorio. | No |
cp | copy | Copia. | Sí: sobrescribe el destino. |
mv | move | Mueve o cambia el nombre. | Sí: sobrescribe el destino. |
rm | remove | Borra. | Sí: es su función. |
rmdir | remove directory | Borra un directorio vacío. | No |
2. Un taller descartable
Para practicar sin riesgo, trabajamos dentro de un directorio nuevo, que al final del tema borraremos entero:
$ cd ~/practica
$ mkdir taller
$ cd taller
$ pwd
/home/ana/practica/taller
Todos los ejemplos, salvo indicación, se ejecutan desde ~/practica/taller, y cada uno parte del estado en que lo dejó el anterior. Conviene seguirlos en orden y ejecutar ls después de cada paso, hasta que predecir el resultado se vuelva fácil.
3. touch: crear un archivo vacío
touch recibe uno o más nombres y crea, por cada uno, un archivo sin contenido:
$ touch lista.txt
$ ls -l
total 0
-rw-rw-r-- 1 ana ana 0 oct 12 12:10 lista.txt
El archivo existe, tiene dueño, permisos y fecha, y mide cero bytes. Parece poco útil, y sin embargo se usa mucho: para preparar un archivo que luego se editará, para hacer pruebas, como hicimos en el tema 9, y porque hay programas que solo necesitan comprobar que cierto archivo existe.
El nombre del comando delata que crear archivos no es su propósito original. touch «toca» un archivo: actualiza su fecha de modificación al momento actual. Si el archivo no existe, lo crea, y ese efecto secundario terminó siendo el uso principal.
| Si el archivo… | touch hace |
|---|---|
| No existe | Lo crea, vacío. |
| Ya existe | Cambia su fecha a la de ahora. El contenido no se toca. |
La segunda fila es importante: touch nunca borra ni vacía nada, y por eso es seguro usarlo sobre un nombre que ya existe.
Un archivo con contenido se crea de otras maneras. La más directa la usamos en el tema 2: echo "Mi primer archivo" > notas.txt, que envía la salida de echo a un archivo. La estudiamos en el tema 23. La otra es un editor de texto, en el tema 13.
4. mkdir: crear directorios
mkdir crea los directorios cuyos nombres recibe. Lo usamos varias veces; ahora miramos sus dos fallos típicos y la opción que los resuelve:
$ mkdir docs
$ mkdir docs # otra vez: ya existe
mkdir: cannot create directory 'docs': File exists
$ mkdir viajes/2026/fotos # falta el camino: no existe «viajes»
mkdir: cannot create directory 'viajes/2026/fotos': No such file or directory
El segundo error es el que desconcierta. mkdir crea un solo nivel: el último nombre de la ruta. Todos los anteriores deben existir. La opción -p, de parents, crea de una vez los que falten:
$ mkdir -pv viajes/2026/fotos
mkdir: created directory 'viajes'
mkdir: created directory 'viajes/2026'
mkdir: created directory 'viajes/2026/fotos'
$ mkdir -p docs # con -p, que ya exista no es un error
$ ls
docs lista.txt viajes
| Opción | Efecto |
|---|---|
-p | Crea los directorios intermedios que falten, y no protesta si el directorio ya existe. |
-v | Informa cada directorio que crea. |
La opción -v, de verbose, existe en los seis comandos del tema y hace lo mismo en todos: rompe la regla del silencio y cuenta lo que se hizo. Es buena compañía mientras se aprende.
Con las llaves del tema 9, mkdir -p arma una estructura completa en una línea, como mkdir -p proyecto/{src,docs,tests}.
5. cp: copiar archivos
cp recibe un origen y un destino, en ese orden, y deja en el destino un duplicado. El original no cambia.
$ cp ../notas.txt . # traer aquí el archivo del directorio padre
$ cp notas.txt copia.txt # duplicarlo con otro nombre
$ ls -l
total 16
-rw-rw-r-- 1 ana ana 18 oct 12 12:14 copia.txt
drwxrwxr-x 2 ana ana 4096 oct 12 12:11 docs
-rw-rw-r-- 1 ana ana 0 oct 12 12:10 lista.txt
-rw-rw-r-- 1 ana ana 18 oct 12 12:14 notas.txt
drwxrwxr-x 3 ana ana 4096 oct 12 12:12 viajes
La primera línea usa las rutas del tema 6: el origen es .., el directorio padre, y el destino es ., «aquí». La segunda da un nombre nuevo a la copia. Las copias son archivos independientes: modificar una no afecta a la otra.
El listado muestra un detalle: las copias tienen la fecha de ahora, las 12:14, y no la del original, que era de las 10:32. Una copia es un archivo nuevo, y como tal recibe fecha nueva y pasa a ser de quien la hizo.
cp tiene tres formas de uso:
| Forma | Ejemplo | Resultado |
|---|---|---|
| Un archivo, a un nombre nuevo | cp notas.txt copia.txt | Un duplicado con ese nombre. |
| Un archivo, a un directorio | cp /etc/hostname docs | Un duplicado dentro del directorio, con el mismo nombre. |
| Varios archivos, a un directorio | cp notas.txt copia.txt docs | Un duplicado de cada uno dentro del directorio. |
$ cp /etc/hostname docs
$ cp notas.txt copia.txt docs
$ ls docs
copia.txt hostname notas.txt
En la tercera forma, el último argumento es siempre el destino y debe ser un directorio existente; todos los anteriores son orígenes. Es la forma que se usa con comodines: cp *.txt docs copia todos los archivos de texto, porque la shell convierte el patrón en la lista de nombres.
6. El destino decide el resultado
Las dos primeras formas se escriben igual: cp, un origen y otra palabra. Lo que cp hace depende de qué sea esa palabra en el momento de ejecutar, y esta es la idea más importante del tema:
| El destino… | cp origen destino hace |
|---|---|
| No existe | Crea un archivo con ese nombre. |
| Es un directorio | Crea la copia dentro, con el nombre del origen. |
| Es un archivo | Lo reemplaza. El contenido anterior se pierde. |
La tercera fila es la primera forma de perder datos con estos comandos. Veámosla ocurrir, sobre un archivo que no importa:
$ cp lista.txt copia.txt # lista.txt está vacío; copia.txt tenía 18 bytes
$ ls -l copia.txt
-rw-rw-r-- 1 ana ana 0 oct 12 12:18 copia.txt
No hubo mensaje ni pregunta. copia.txt tiene ahora cero bytes, y lo que contenía no existe en ninguna parte. La opción -i, de interactive, hace que cp pregunte antes de reemplazar:
$ cp -i notas.txt copia.txt
cp: overwrite 'copia.txt'? y
$ ls -l copia.txt
-rw-rw-r-- 1 ana ana 18 oct 12 12:19 copia.txt
Se responde y, de yes, para aceptar; cualquier otra cosa cancela. La ambigüedad del destino tiene también una defensa simple. Cuando la intención es copiar dentro de un directorio, se escribe el destino con una barra final:
cp notas.txt docs/ dice «docs es un directorio». Si existe, funciona igual que sin la barra. Si por un error de tipeo no existe, el comando falla con un mensaje, en lugar de crear en silencio un archivo llamado docs. Tab pone esa barra automáticamente.
7. Copiar directorios: -r y -a
Sin opciones, cp se niega a copiar un directorio:
$ cp docs respaldo
cp: -r not specified; omitting directory 'docs'
$ cp -r docs respaldo
$ ls respaldo
copia.txt hostname notas.txt
La opción -r, de recursive, copia el directorio con todo su contenido, incluidos los subdirectorios, hasta el fondo. El resultado fue un directorio nuevo, respaldo, igual a docs.
La regla de la sección anterior se aplica aquí también, y produce la sorpresa más frecuente de cp. Ejecutar la misma línea una segunda vez no da el mismo resultado:
$ cp -r docs respaldo # la misma línea, pero ahora «respaldo» existe
$ ls respaldo
copia.txt docs hostname notas.txt
| El destino… | cp -r docs respaldo hace |
|---|---|
| No existe | Crea respaldo como copia de docs. |
| Existe y es un directorio | Crea la copia dentro: respaldo/docs. |
Por eso, antes de copiar un directorio conviene saber si el destino existe: un ls lo responde.
Para las copias de seguridad hay una opción mejor que -r. Es -a, de archive: copia de manera recursiva y además conserva las fechas, los permisos y los enlaces de cada archivo. La copia resulta idéntica al original, no solo en contenido.
cp -r | cp -a | |
|---|---|---|
| Copia los subdirectorios | Sí | Sí |
| Fechas de las copias | La de ahora | Las originales |
| Permisos | Los que correspondan a un archivo nuevo | Los originales |
| Enlaces simbólicos | Se copian como enlaces | Se copian como enlaces |
| Para | Duplicar para trabajar | Respaldar |
8. Las opciones de cp
Reunidas, las opciones que conviene conocer:
| Opción | Efecto |
|---|---|
-i | Pregunta antes de sobrescribir. |
-n | Nunca sobrescribe: si el destino existe, lo deja como está. |
-u | Copia solo si el origen es más nuevo que el destino, o si el destino no existe. |
-v | Muestra cada archivo que copia. |
-r | Copia directorios con su contenido. |
-p | Conserva fechas, permisos y dueño. |
-a | Copia de archivo: recursiva y conservando todo. |
$ cp -v notas.txt lista.txt docs/
'notas.txt' -> 'docs/notas.txt'
'lista.txt' -> 'docs/lista.txt'
-u, de update, sirve para repetir una copia grande trayendo solo lo que cambió. Para sincronizar directorios de verdad hay una herramienta dedicada, rsync, que excede este curso pero conviene tener anotada.
Antes de seguir, deshacemos el efecto de ese último ejemplo, para mantener ordenado el taller. Es también el primer uso de rm:
$ rm docs/lista.txt
9. mv: mover y renombrar
En la terminal no hay un comando para cambiar el nombre de un archivo. No hace falta: renombrar es mover. Cambiar lista.txt por compras.txt es moverlo a otro nombre dentro del mismo directorio. Las dos operaciones las hace mv.
cp hay dos archivos. Después de mv hay uno: el mismo, con otro nombre u otro lugar.$ mv lista.txt compras.txt # renombrar
$ mv compras.txt docs/ # mover a un directorio
$ mv docs/hostname equipo.txt # mover y renombrar a la vez
$ mv respaldo seguridad # renombrar un directorio
$ ls
copia.txt docs equipo.txt notas.txt seguridad viajes
$ ls docs
compras.txt copia.txt notas.txt
La sintaxis es la de cp, con las mismas tres formas y la misma regla del destino:
| El destino… | mv origen destino hace |
|---|---|
| No existe | Renombra: el origen pasa a llamarse así. |
| Es un directorio | Mueve el origen dentro, con su mismo nombre. |
| Es un archivo | Lo reemplaza. El contenido anterior se pierde. |
La tercera fila es más grave que en cp. Con cp, tras sobrescribir quedan dos archivos iguales. Con mv, el destino desaparece y el origen ocupa su nombre: de dos archivos distintos queda uno.
10. mv en detalle
Las opciones de protección son las mismas que en cp:
| Opción | Efecto |
|---|---|
-i | Pregunta antes de sobrescribir. |
-n | Nunca sobrescribe. |
-v | Muestra cada movimiento. |
$ mv -i equipo.txt notas.txt
mv: overwrite 'notas.txt'? n
$ mv -v copia.txt duplicado.txt
renamed 'copia.txt' -> 'duplicado.txt'
Hay tres diferencias con cp que conviene saber.
Los directorios no necesitan -r. mv mueve un directorio con todo lo que contiene, sin opciones, como hicimos con respaldo.
Es instantáneo, casi siempre. Mover un archivo dentro del mismo disco no copia nada: el sistema solo cambia la anotación de en qué directorio y con qué nombre figura. Un archivo de varios gigabytes se mueve en el mismo tiempo que uno vacío. Solo cuando el destino está en otro disco, como una memoria USB, mv debe copiar los datos y borrar el original, y entonces tarda lo que una copia.
No sirve para renombrar en masa. Es un intento natural, y falla por lo que aprendimos en el tema 9:
$ mv *.txt *.bak
mv: target '*.bak': No such file or directory
La shell expande los patrones antes de que mv los vea. Como no hay archivos .bak, el segundo queda literal, y mv recibe una lista de archivos seguida de un «directorio» llamado *.bak, que no existe. mv no sabe nada de la intención de cambiar una extensión por otra. Renombrar muchos archivos requiere un bucle, que es materia del próximo curso, o el comando rename.
11. rm: borrar archivos
rm elimina los archivos que recibe como argumentos.
$ rm equipo.txt
$ rm -i duplicado.txt
rm: remove regular file 'duplicado.txt'? y
$ ls
docs notas.txt seguridad viajes
El primer rm no dijo nada, y el archivo ya no está. No fue a una papelera. Su nombre desapareció del directorio y el espacio que ocupaba quedó libre para otros datos.
No existe un comando opuesto a rm. Hay herramientas forenses que a veces rescatan fragmentos, sin garantía y con mucho trabajo. A todos los efectos prácticos, el archivo dejó de existir en el momento del Enter. La única protección real es tener una copia en otro lugar.
| Opción | Efecto |
|---|---|
-i | Pregunta por cada archivo. |
-I | Pregunta una sola vez, si se van a borrar más de tres archivos o un directorio. |
-v | Muestra cada archivo que borra. |
-r | Borra directorios con todo su contenido. |
-f | No pregunta nunca y no informa errores por archivos inexistentes. |
Una curiosidad que se aclara en el bloque 4: para borrar un archivo no hace falta permiso sobre el archivo, sino sobre el directorio que lo contiene. Borrar es quitar un nombre de la lista de un directorio, y lo que se modifica es esa lista.
12. Borrar directorios: rmdir y rm -r
Sin opciones, rm no borra directorios. Para eso hay dos caminos, uno prudente y otro expeditivo:
$ rm docs
rm: cannot remove 'docs': Is a directory
$ rmdir docs
rmdir: failed to remove 'docs': Directory not empty
$ rmdir viajes/2026/fotos # este sí: está vacío
$ rmdir -p viajes/2026 # borra «2026» y, al quedar vacío, «viajes»
$ ls
docs notas.txt seguridad
rmdir | rm -r | |
|---|---|---|
| Borra | Solo directorios vacíos | El directorio y todo lo que contiene |
| Si hay algo dentro | Falla, y no borra nada | Lo borra también |
| Riesgo | Ninguno | El máximo |
rmdir es un comando seguro por construcción: no puede destruir datos, porque se niega a actuar si hay alguno. Cuando crees que un directorio está vacío, es la manera correcta de borrarlo: si te equivocabas, lo sabrás por el mensaje y no por la pérdida. Recuerda del tema 7 que un directorio puede parecer vacío y tener archivos ocultos.
rm -r desciende por el árbol y borra cada archivo y cada directorio que encuentra:
$ rm -r seguridad
$ rm -rv docs
removed 'docs/compras.txt'
removed 'docs/copia.txt'
removed 'docs/notas.txt'
removed directory 'docs'
$ ls
notas.txt
El directorio seguridad, con sus archivos y su subdirectorio, desapareció en un instante y sin una línea de salida.
13. rm -rf y los accidentes clásicos
La combinación rm -rf es la orden más temida de Unix. Une «todo lo que haya debajo» con «sin preguntar nada». No tiene nada de malo en sí: es la forma normal de eliminar un directorio grande. El problema es que hace exactamente lo que se le pide sobre la ruta que recibe, y que una ruta equivocada por un carácter puede ser otro lugar del sistema.
Los accidentes reales se parecen todos. Vale la pena conocerlos, porque se evitan sabiendo que existen:
| Lo que se escribió | Lo que se quería | Lo que pasa |
|---|---|---|
rm -rf ~ /viejo | rm -rf ~/viejo | Un espacio de más: dos argumentos. Borra el directorio personal entero. |
rm -rf * .tmp | rm -rf *.tmp | Otro espacio: borra todo el directorio actual. Lo vimos en el tema 9. |
rm -rf * | Lo mismo, pero en otro directorio | No se verificó dónde se estaba con pwd. |
rm -rf /tmp/prueba / | rm -rf /tmp/prueba/ | Un espacio antes de la barra final: el segundo argumento es la raíz. |
rm -rf "$DIR"/*, en un script | Vaciar un directorio | Si la variable está vacía, la ruta queda como /*: todo el sistema. |
El sistema tiene dos protecciones. Los permisos impiden a un usuario común borrar lo que no es suyo, de modo que el daño se limita a su directorio personal, que es justamente donde están sus archivos. Y rm se niega expresamente a actuar sobre la raíz:
rm: it is dangerous to operate recursively on '/'
rm: use --no-preserve-root to override this failsafe
Esa protección cubre solo el caso exacto de /. No cubre /*, ni /home, ni tu directorio personal. Y con sudo delante, los permisos dejan de proteger.
Tres comprobaciones, siempre: dónde estoy, con pwd; qué voy a borrar, con ls sobre la misma ruta; y la línea releída entera antes del Enter, buscando espacios donde no debe haberlos. Y una costumbre: no agregar -f por rutina. Solo hace falta cuando rm pregunta y la respuesta es siempre sí.
14. Cómo no perder datos
Nada de lo anterior es motivo para temerle a la terminal. Quienes la usan a diario borran y mueven archivos todo el tiempo sin incidentes, porque trabajan con unos pocos hábitos fijos:
- Mirar antes.
lscon la misma ruta o el mismo patrón que se va a usar. ver - Reutilizar la línea. Flecha arriba y cambiar
lsporrm, en vez de escribir el patrón otra vez. historial - Completar las rutas con Tab. Un nombre completado existe y está bien escrito. Tab
- Usar
-icuando haya duda. Sobre todo con comodines. preguntar - Preferir
rmdirpara lo que debería estar vacío. seguro - Mover en lugar de borrar. Ante la duda,
mva un directorio «para borrar», y eliminarlo días después. reversible - Copiar antes de modificar. Antes de tocar un archivo importante,
cp -a archivo archivo.bak. respaldo
El sexto es la versión manual de una papelera. Existe también la automática: en un escritorio como el de Ubuntu, el comando gio trash archivo envía un archivo a la papelera del entorno gráfico, de donde se lo puede restaurar. Es una buena alternativa a rm para el uso personal.
Sobre el cuarto hábito hay una advertencia que hicimos en el tema 5 y que ahora se entiende del todo. Es tentador definir alias rm='rm -i' para que siempre pregunte. El riesgo es acostumbrarse a esa red: el día que trabajes en otra máquina, o que un script use rm, no estará. Es preferible escribir el -i cuando se lo necesita, y que el hábito sea mirar antes.
Y el séptimo apunta a la única protección que funciona contra todos los errores, incluidos los que no dependen de ti, como un disco que falla: una copia de seguridad en otro dispositivo. Ningún cuidado al escribir la reemplaza.
15. Dejar todo como estaba
Queda desarmar el taller. Es un buen ejercicio de lo aprendido, aplicando las comprobaciones:
$ cd .. # no se puede borrar cómodamente el directorio en el que se está
$ pwd
/home/ana/practica
$ ls taller # qué voy a borrar
notas.txt
$ rm -r taller
$ ls
fotos informe.txt notas.txt
El directorio de práctica quedó como al comenzar. El notas.txt que se borró era la copia del taller; el original nunca se tocó.
La referencia rápida del tema:
| Comando | Qué hace |
|---|---|
touch archivo | Crea un archivo vacío, o actualiza su fecha. |
mkdir dir | Crea un directorio. |
mkdir -p a/b/c | Crea toda la ruta. |
cp origen destino | Copia un archivo. |
cp archivos… dir/ | Copia varios archivos a un directorio. |
cp -r dir copia | Copia un directorio con su contenido. |
cp -a dir copia | Lo mismo, conservando fechas y permisos. |
mv viejo nuevo | Renombra. |
mv archivos… dir/ | Mueve a un directorio. |
rm archivo | Borra un archivo. |
rmdir dir | Borra un directorio vacío. |
rm -r dir | Borra un directorio con todo su contenido. |
-i, -v | En cp, mv y rm: preguntar; informar. |
Sabemos crear archivos, pero todavía no mirar bien lo que tienen dentro: cat muestra todo de golpe, y con un archivo largo no alcanza. En el tema 12 vemos las herramientas para leer contenido: por páginas, solo el principio, solo el final, o a medida que se escribe.
16. Resumen
- Los comandos que modifican archivos no usan papelera, no piden confirmación y no informan cuando tienen éxito.
touchcrea archivos vacíos; si el archivo existe, solo actualiza su fecha.mkdircrea directorios; con-p, también los intermedios que falten.cp origen destinocopia. La copia es un archivo nuevo, con fecha nueva.- El resultado de
cpy demvdepende del destino: si no existe, se crea con ese nombre; si es un directorio, el origen va dentro; si es un archivo, se lo reemplaza. cp -rcopia directorios;cp -a, además, conserva fechas y permisos.mvmueve y renombra, que son la misma operación. Dentro de un mismo disco es instantáneo.rmborra archivos de manera definitiva. Con-rborra directorios con todo su contenido.rmdirborra solo directorios vacíos, y por eso no puede destruir datos.-ihace quecp,mvyrmpregunten;-v, que informen lo que hacen.- Los accidentes con
rm -rfse deben casi siempre a un espacio de más o a estar en otro directorio. - Los hábitos que evitan pérdidas: mirar con
lsantes, reutilizar la línea, completar con Tab, y tener copias de seguridad.
17. Preguntas de repaso
Intenta responder cada una antes de abrir la respuesta.
1. ¿Qué hace touch notas.txt si el archivo ya existe y tiene contenido?
Actualiza su fecha de modificación al momento actual. El contenido no cambia.
2. mkdir a/b/c responde «No such file or directory». ¿Por qué, y cómo se resuelve?
Porque mkdir crea solo el último directorio de la ruta, y a o a/b no existen. Con mkdir -p a/b/c se crean todos los que falten.
3. ¿Qué hace cp informe.txt datos en cada caso: si datos no existe, si es un directorio y si es un archivo?
Si no existe, crea un archivo datos que es copia de informe.txt. Si es un directorio, crea datos/informe.txt. Si es un archivo, lo reemplaza y su contenido anterior se pierde.
4. ¿Qué ventaja tiene escribir cp informe.txt datos/, con la barra final?
Que declara que el destino es un directorio. Si datos no existe, el comando falla con un mensaje en lugar de crear un archivo con ese nombre.
5. Ejecutas dos veces seguidas cp -r fotos copia. ¿Qué hay al final?
La primera vez se crea copia, igual a fotos. La segunda, como copia ya existe y es un directorio, se crea copia/fotos dentro.
6. ¿Qué diferencia hay entre cp -r y cp -a?
Las dos copian un directorio con su contenido. -a conserva además las fechas, los permisos y el dueño de cada archivo, y es la adecuada para copias de seguridad.
7. ¿Cómo se cambia el nombre de un archivo?
Con mv nombre-viejo nombre-nuevo. Renombrar es mover a otro nombre.
8. ¿Por qué sobrescribir con mv es más grave que con cp?
Porque después de cp quedan el origen y el destino, con el mismo contenido. Después de mv queda un solo archivo: el destino anterior se perdió y el origen ya no está en su lugar.
9. ¿Por qué mover un archivo de 10 GB dentro del mismo disco es instantáneo?
Porque no se copian los datos. El sistema solo cambia en qué directorio y con qué nombre figura el archivo.
10. ¿Por qué no funciona mv *.txt *.md para cambiar la extensión de varios archivos?
Porque la shell expande los patrones antes de ejecutar. mv recibe la lista de archivos .txt y, como último argumento, un patrón que no coincide con nada o un archivo cualquiera, que toma por destino.
11. ¿Qué diferencia hay entre rmdir y rm -r?
rmdir borra un directorio solo si está vacío. rm -r lo borra con todo lo que contenga.
12. ¿Qué hace cada letra de rm -rf?
-r hace que borre directorios con todo su contenido. -f, que no pregunte nunca ni informe errores por archivos que no existen.
13. ¿Qué diferencia hay entre rm -rf ~/viejo y rm -rf ~ /viejo?
La primera borra el directorio viejo del directorio personal. En la segunda, el espacio separa dos argumentos: borra el directorio personal completo e intenta borrar /viejo.
14. ¿Qué tres cosas conviene comprobar antes de un rm -r?
El directorio de trabajo, con pwd; qué se va a borrar, con ls sobre la misma ruta; y la línea completa, releída antes de pulsar Enter.
15. ¿Se puede recuperar un archivo borrado con rm?
En la práctica, no: no hay papelera ni comando para deshacer. La protección es tener una copia de seguridad, o usar un comando que sí envíe a la papelera, como gio trash.
Para practicar
- En
~/practica, crea con una sola línea la estructuracurso/{teoria,ejercicios/{resueltos,pendientes}}y verifícala contreeo confind. - Crea en
curso/teorialos archivostema1.txtatema5.txtcontouchy las llaves. - Copia
/etc/hostnamey/etc/os-releaseacurso/ejercicios/pendientes/con un solo comando y la opción-v. - Renombra
curso/teoria/tema5.txtcomoanexo.txt, y luego muévelo acurso. - Haz una copia de
cursollamadacurso-respaldoconcp -a. Compara las fechas de los archivos conls -len el original y en la copia. Repite concp -rhaciacurso-copiay observa la diferencia. - Intenta copiar
hostnamesobreos-releaseconcp -i, y responde que no. Luego prueba la misma copia con-n: ¿qué ocurre? - Intenta borrar
curso/ejerciciosconrmdiry lee el mensaje. Bórralo después de la manera adecuada. - Borra todos los archivos
.txtdecurso/teoria: primero mira la lista conls, y luego recupera la línea con la flecha arriba y cambia el comando. - Crea un archivo llamado
-prueba.txtcontouch -- -prueba.txt. Intenta borrarlo conrm -prueba.txt, lee el mensaje y bórralo de dos maneras correctas. - Elimina
curso,curso-respaldoycurso-copia, aplicando las tres comprobaciones. Al terminar,~/practicadebe contener solofotos,informe.txtynotas.txt.