Combina dos comandos bash find

1

Tengo dos comandos find similares que básicamente tengo el mismo código para ambos una vez que comienza el ciclo while. Quiero combinarlos, así que solo necesito un find para buscar en los archivos y directorios, en lugar de uno para buscar directorios y uno para buscar archivos. Aquí están los dos que quiero combinar en una línea:

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

find "$ORIG_DIR" -name "*" -type f | while read fname
    
pregunta Erick 20.01.2014 - 21:32

2 respuestas

0

Puede proporcionar múltiples opciones de -type con -o , como -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 -name se proporciona dos veces en el comando anterior.

    
respondido por el grg 20.01.2014 - 21:33
0

Puede usar 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
    
respondido por el nohillside 20.01.2014 - 21:36

Lea otras preguntas en las etiquetas