1 votos

Combinar dos comandos bash find

Tengo dos similares find comandos que básicamente tengo el mismo código para ambos una vez que el bucle while comienza. Quiero combinarlos para que sólo necesite uno find para buscar en archivos y directorios, en lugar de una para buscar en directorios y otra para buscar en archivos. Aquí están los dos que quiero combinar en una sola línea:

find "$ORIG_DIR" -name "*" -type d | while read dname

find "$ORIG_DIR" -name "*" -type f | while read fname

0voto

Puede utilizar el comando de prueba para ver si es un archivo o una carpeta:

find "$ORIG_DIR" | while read thing; do
    if [[ -d "$thing" ]]; then
        # do whatever you want to do with the directory
    fi
    if [[ -f "$thing" ]]; then
        # do whatever you want to do with the file
    fi
done

0voto

siva Puntos 23

Puede proporcionar múltiples -type opciones con -o como por ejemplo -type d -o -type f en un solo comando.

find "$ORIG_DIR" -name "*" -type d -o -name "*" -type f | while read file

-o coincide con todos los parámetros, por lo que el -name se proporciona dos veces en el comando anterior.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X