17 votos

¿Simplemente 'rm -rf' borra algún archivo?

Recientemente, he dirigido rm -rf no rm -rf / pero no pasó nada. Solo obtengo un resultado como este:

Terminal

Me asusté porque me preocupa que pueda haber borrado algunos archivos, pero no lo hizo. Para estar seguro, ¿podría haber borrado algún archivo de mi directorio?

38 votos

Si no estás seguro (seguro al 100%) no ejecutes un comando.

0 votos

Ya, ejecutar comandos de terminal desconocidos es una buena forma de ver cómo puedes destruir tu entorno.

5 votos

Nunca escriba comandos que no entienda. Todo lo que necesitabas era un . o un / y vas a borrar MUCHAS cosas.

50voto

Michael Zhou Puntos 167

No, rm -rf no borrará ningún archivo porque no has proporcionado ningún argumento al comando.

7 votos

Y debido a -f no es un error ejecutarlo sin argumentos. rm -r se quejará de que "falta el operando", pero -f suprime eso, y también suprime los errores de archivos que no existen. (Así, por ejemplo, un script podría usar rm -rf /foo/bar/* para vaciar un directorio que podría estar ya vacío, sin tener que 2>/dev/null para aplastar los errores).

35voto

TN. Puntos 3450

Desde el página del manual :

rm elimina cada archivo especificado.

Esto significa que se puede utilizar para eliminar una lista de archivos a la vez, por ejemplo, con

rm -rf test1.txt test2.txt

Afortunadamente, todo lo que hiciste fue pasar un vacío lista de archivos, por lo que no borró nada. Además, lo que @SolarMike dice Si no sabes lo que hace un comando, no lo ejecute . MacOS está diseñado para "ocultar" al usuario final todas las operaciones peligrosas (pero potencialmente potentes) de Unix.

7 votos

Para su información -r es innecesario a menos que esté borrando directorios de forma recursiva. Si son sólo archivos, rm es suficiente -- el -f es para forzar que no te pregunte "¿estás seguro?" para cada archivo.

9 votos

Además, el -f hace que no se muestre el mensaje de uso cuando se utiliza incorrectamente. Esta es la razón por la que no había salida en absoluto cuando el OP corrió rm -rf . Si hubieran ejecutado 'rm -r' sin especificar archivos/directorios, habrían obtenido este mensaje de uso: JanNash ~ $ usage: rm [-f | -i] [-dPRrvW] file ... unlink file

0 votos

Interesante, rm -rf / xyz* no eliminará nada si no hay ningún archivo que coincida con "xyz*", porque el intérprete de comandos producirá el error /bin/rm: No match. prevenir rm de correr en absoluto.

13voto

s1ns3nt Puntos 11

Para el profano/Linux/novato de Unix:

rm solo no hace nada porque no le has dicho de qué tiene que deshacerse.

man rm puede explicar la mayor parte de esto, si lo entiende.

-r significa recursivo, como en "incluir todo en las subcarpetas"

-f significa forzar, modo "no me pidas que confirme"

rm -rf (NO LO HAGAS) / diría que borrar todo bajo / (la carpeta root) sin comprobarlo (en las versiones recientes de MacOS, SIP evitará que elimine el propio MacOS con esto, pero se eliminarán muchas otras cosas)

rm [some file name] simplemente borraría ese archivo.

rm -rf /home/myuser/books borraría todo lo que hay en myuser 's books así como la carpeta.

6 votos

Hoy en día hay que hacer rm -rf / --no-preserve-root para disparar la pierna correctamente.

1 votos

@Gallifreyan ¿Hay alguna forma de disparar correctamente a la pierna?

1 votos

Se dice que éste funciona bien. No conozco otro :)

4voto

alvaro Puntos 11

No, pero si quieres eliminar Aquí tienes un ejemplo:

Después de iniciar Terminal (en su carpeta /Aplicaciones/Utilidades) escriba cd ~/Desktop para navegar al directorio Desktop. Si tuvieras un archivo aquí llamado MiArchivo.rtf que no quisieras volver a ver, podrías ejecutar este comando:

rm MyFile.rtf

Cuando pulses "Return", el archivo desaparecerá, se convertirá en historia. No podrás recuperarlo.

0 votos

En realidad rm elimina toda referencia del archivo, no friega el disco duro del archivo sobrescribiendo cada byte, si estoy entendiendo la documentación correctamente.

0 votos

@NoBugs Pero para ser justos así es como funcionan todos los 'borrados' modernos, Windows incluido. Si la función de borrado sobrescribe cada byte, entonces se anunciará como tal (principalmente porque lleva más tiempo y es innecesario la mayoría de las veces).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X