bash - elimina todos los directorios (y contenidos) pero no los archivos en pwd


11

Me gustaría eliminar todos los directorios del pwd pero dejar los archivos en el pwd solo. Si el contenido de mi pwd es:

mydir1
mydir2
myfile1
myfile2

entonces me gustaría quedarme con solo

myfile1
myfile2

Supongo que necesito usar rm -r -i

¿Estoy en lo correcto?

Respuestas:


7

No, eso te daría "operando perdido" ya que no especificaste nada. Poner un "*" también pedirá archivos.

Daría una oportunidad para:

encuentra -mindepth 1 -maxdepth 1 -type d -exec rm -r {} \;

El "mindepth 1" excluirá "." a partir de los resultados, el "maxdepth 1" excluirá intentar hacerlo en los directorios que de todos modos se eliminarán (por lo tanto, se creará una advertencia). Pero en la práctica, puede dejarlos fuera si acepta tener algunas advertencias "inocentes".


11

Encontré este en algún lugar:

rm -r */

Parece la forma más fácil de ir. Con su ejemplo, tendría que confirmar cada caso, si tiene 5 archivos, está bien, pero con estructuras de archivos más grandes, un modo interactivo no es el camino a seguir ... Solo como una sugerencia, si es información importante, haga una apoyo...


1
Eso también seguirá a los enlaces simbólicos, que probablemente no se desean aquí.
JdeBP

5

Utilizar

rm -rf ./*/

Eso evita el modo interactivo y elimina solo directorios en su directorio local.


Como JdeBP señaló en Respuesta muy similar de Martin Si el directorio actual (nivel superior) contiene enlaces simbólicos a otros directorios, también se eliminarán (incluso si no están o no están subordinados al directorio actual).
Scott

3

Algo como esto debería funcionar:

find /path -type d -exec rm -rf '{}' \;

-tipo d busca solo directorios


-1
you can also try in this way to delete only all folders not files from any location in linux.

    #delete only all dir and don't touch files
    #!/bin/bash
    for dir in `ls -l | grep ^d | awk '{print $9}'`
    do
    echo "going to delete $dir " `rm -rf $dir`
    done
    ls
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.