wildcards – rm -rf todos los archivos y todos los archivos ocultos sin. & .. error

Pregunta:

rm -rf /some/path/* elimina todos los archivos no ocultos en ese directorio (y subdirectorios).

rm -rf /some/path/.* elimina todos los archivos ocultos en ese directorio (pero no subdirectorios) y también da el siguiente error / advertencia:

rm: cannot remove directory: `/some/dir/.'
rm: cannot remove directory: `/some/dir/..'

¿Cuál es la forma correcta de eliminar todos los archivos y carpetas ocultos y no ocultos de forma recursiva en un directorio de destino sin recibir la advertencia / error sobre . y .. ?

Respuesta:

* coincide con todos los archivos que no son de puntos,. .[!.]* coincide con todos los archivos de puntos excepto . y archivos cuyo nombre comienza con .. , y ..?* coincide con todos los archivos punto-punto excepto .. Juntos coinciden con todos los archivos que no sean . y .. Si alguno de estos tres patrones no coincide con nada, se expande a sí mismo; rm -f no se preocupa por los argumentos inexistentes, así que esto no importa.

rm -rf ..?* .[!.]* *

También puede usar find . Esto es más complejo pero tiene la ventaja de funcionar incluso si hay tantos archivos que los comodines anteriores se expandirían más allá del límite de longitud de la línea de comandos de su sistema.

find . -name . -o -prune -exec rm -rf -- {} +

Puede que le resulte más claro eliminar y volver a crear el directorio. Esto tiene la ventaja (o la desventaja, según sea el caso) de dar como resultado un directorio vacío incluso si otro programa está creando archivos al mismo tiempo en el directorio original.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım