¿Funciona su rmdir si hay archivos en el subdirectorio?
Jeff Schaller
1
Consulte también la llamada del sistema homónimo rmdir(2)que solo puede eliminar directorios vacíos.
David Foerster
44
Por cierto, hay un procedimiento "correcto" para usar rm -r: (1) Escriba el comando, pero no lo ingrese (2) Retire las manos del teclado (3) Cuente hasta cinco (4) Presione ENTRAR. He comenzado a hacer algo como esto con todos los comandos peligrosos, para darme la oportunidad de ver lo que estoy haciendo, asegurarme de que escribí las cosas correctamente, pensar si podría haber consecuencias inesperadas, etc. De vez en cuando esto me lleva para borrar mi comando y hacer algunas verificaciones adicionales primero, por ejemplo.
ajb
3
@ajb rm -rf ~ /*: limpia mi directorio de inicio. O espere, quizás limpie el sistema. Siempre es bueno verificar dos veces;).
Tom Carpenter
1
@ajb Tenga en cuenta que rmdiry rm -rson dos cadenas de la misma longitud :-)
Kusalananda
Respuestas:
14
rm -relimina un directorio y todos sus contenidos; rmdirsolo eliminará un directorio si el directorio está vacío. Me gusta usar lo siguiente para eliminar un directorio y todo su contenido:
Tenga en cuenta que, por lo general, no debe usarlo -fsi no lo necesita. Es útil de usar -rfsiempre, pero deshabilita (casi) todas las verificaciones de seguridad.
allo
55
-1 por recomendación innecesaria de la -fbandera de rm que puede tener consecuencias imprevisibles e irrevertables
cat
¿Entonces rmdires justo rm -d?
Stan Strum
@StanStrum -dno es una opción estándar para rm.
Kusalananda
@cat El rmcomando en general puede tener estas consecuencias. El -findicador es útil cuando se ejecuta set -een un script. Estoy de acuerdo en que usar sin pensar es innecesario .
Kusalananda
1
Debe usarlo rm -rcuando desee eliminar de forma recursiva un directorio y todo su contenido, o cuando el destino puede ser un directorio o archivo y desee eliminarlo independientemente de lo que sea.
Debe usarlo rmdircuando desee eliminar un directorio vacío.
El rmdircomando es útil ya que se niega a eliminar directorios y archivos no vacíos. Esto sirve como una trampa de seguridad en situaciones en las que es posible que desee estar absolutamente seguro de que lo que está eliminando es un directorio y que el directorio está vacío antes de eliminarlo (por ejemplo, en un script) y desea tratarlo como una condición de error de otra manera.
rmdir(2)
que solo puede eliminar directorios vacíos.rm -r
: (1) Escriba el comando, pero no lo ingrese (2) Retire las manos del teclado (3) Cuente hasta cinco (4) Presione ENTRAR. He comenzado a hacer algo como esto con todos los comandos peligrosos, para darme la oportunidad de ver lo que estoy haciendo, asegurarme de que escribí las cosas correctamente, pensar si podría haber consecuencias inesperadas, etc. De vez en cuando esto me lleva para borrar mi comando y hacer algunas verificaciones adicionales primero, por ejemplo.rm -rf ~ /*
: limpia mi directorio de inicio. O espere, quizás limpie el sistema. Siempre es bueno verificar dos veces;).rmdir
yrm -r
son dos cadenas de la misma longitud :-)Respuestas:
rm -r
elimina un directorio y todos sus contenidos;rmdir
solo eliminará un directorio si el directorio está vacío. Me gusta usar lo siguiente para eliminar un directorio y todo su contenido:fuente
-f
si no lo necesita. Es útil de usar-rf
siempre, pero deshabilita (casi) todas las verificaciones de seguridad.-f
bandera de rm que puede tener consecuencias imprevisibles e irrevertablesrmdir
es justorm -d
?-d
no es una opción estándar pararm
.rm
comando en general puede tener estas consecuencias. El-f
indicador es útil cuando se ejecutaset -e
en un script. Estoy de acuerdo en que usar sin pensar es innecesario .Debe usarlo
rm -r
cuando desee eliminar de forma recursiva un directorio y todo su contenido, o cuando el destino puede ser un directorio o archivo y desee eliminarlo independientemente de lo que sea.Debe usarlo
rmdir
cuando desee eliminar un directorio vacío.El
rmdir
comando es útil ya que se niega a eliminar directorios y archivos no vacíos. Esto sirve como una trampa de seguridad en situaciones en las que es posible que desee estar absolutamente seguro de que lo que está eliminando es un directorio y que el directorio está vacío antes de eliminarlo (por ejemplo, en un script) y desea tratarlo como una condición de error de otra manera.fuente