GNU/Linux >> Tutoriales Linux >  >> Linux

¿Excluir una lista de directorios del comando Find de Unix?

Necesito crear una lista de archivos presentes en un directorio pero también pasar un archivo que contenga una lista de directorios para excluir.

He visto la siguiente sugerencia, pero no he tenido suerte con ella en lo que respecta a la marca de tipo:

find $dir_name $(printf "! -name %s " $(cat $exclude_file))

¿Hay alguna manera de hacerlo o tendré que crear la lista completa y luego trabajar en ella eliminando las que coinciden parcialmente con las del directorio de exclusión?

Respuesta aceptada:

Dado que su exclude_file contiene rutas, no nombres, debe usar -path para que coincida con sus entradas. Para excluir los subdirectorios de directorios coincidentes, también debe -prune a ellos. Esto debería funcionar:

find . -type d \( $(printf -- "-path */%s -o " $(cat "$exclude_file")) -false \) -prune -o -print

Si solo desea ver archivos, puede imprimir solo archivos:

find . -type d \( $(printf -- "-path */%s -o " $(cat "$exclude_file")) -false \) -prune -o -type f -print

Linux
  1. Cómo excluir directorios específicos de la copia en Linux

  2. Encuentra la versión de WordPress desde la línea de comandos

  3. Cómo excluir un directorio en find. dominio

  4. Use el comando de búsqueda pero excluya archivos en dos directorios

  5. ¿Cómo puedo excluir un directorio del comando ls?

Buscar comando en Linux (Buscar archivos y directorios)

Comando Ls en Linux (Lista de archivos y directorios)

Copie un archivo a varios directorios desde la línea de comandos en Linux

Cómo enumerar solo directorios en Linux

Buscar comando en Linux/UNIX

encontrar comando de PID