GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo eliminar directorios recursivamente con comodines?

Estoy trabajando a través de SSH en un WD My Book World Edition. Básicamente, me gustaría comenzar en un nivel de directorio particular y eliminar recursivamente todos los subdirectorios que coincidan con .Apple* . ¿Cómo lo haría?

Lo intenté

rm -rf .Apple* y rm -fR .Apple*

ni los directorios eliminados que coincidan con ese nombre dentro de los subdirectorios.

Respuesta aceptada:

find es muy útil para realizar acciones selectivamente en un árbol completo.

find . -type f -name ".Apple*" -delete

Aquí, el -type f se asegura de que sea un archivo, no un directorio, y puede que no sea exactamente lo que desea, ya que también omitirá los enlaces simbólicos, los sockets y otras cosas. ¡Puedes usar ! -type d , que literalmente significa que no son directorios, pero también puede eliminar caracteres y bloquear dispositivos. Sugeriría mirar el -type predicado en la página man para find .

Para hacerlo estrictamente con un comodín, necesita soporte de shell avanzado. Bash v4 tiene el globstar opción, que le permite unir recursivamente subdirectorios usando ** . zsh y ksh también apoyan este patrón. Usando eso, puedes hacer rm -rf **/.Apple* . Esto no es estándar POSIX y no es muy portátil, por lo que evitaría usarlo en un script, pero para una acción de shell interactiva única, está bien.


Linux
  1. Cómo eliminar cuentas de usuario con el directorio de inicio en Linux

  2. Cómo buscar y eliminar directorios recursivamente en Linux

  3. ¿Tiene problemas con los directorios de eliminación de comandos de búsqueda?

  4. Cómo eliminar un uso no root con UID 0 en Linux

  5. ¿Cómo puedo eliminar recursivamente todos los archivos y directorios vacíos en Linux?

Cómo excluir archivos y directorios con Rsync

Cómo quitar (eliminar) directorio en Linux

Cómo comparar directorios con Meld en Linux

Cómo copiar archivos con una extensión de archivo específica recursivamente

Cómo encontrar y eliminar directorios vacíos en Linux

Cómo eliminar archivos y directorios usando la línea de comandos de Linux