ln -s informa que un procedimiento falló, pero de todos modos crea enlaces simbólicos

ln -s informa que un procedimiento falló, pero de todos modos crea enlaces simbólicos

Estoy en el directorio principal y hay varios archivos con extensiones .fastq, .fq, .fastq.gz y .fq.gz en diferentes subdirectorios. Creé un subdirectorio llamado FASTQC y quiero crear enlaces simbólicos a todos ellos en ese subdirectorio.

Cuando lo intento:

find "$PWD" \( ! -path "$PWD/FASTQC" -type f -name *.f*q -o -name *.f*q.gz \) -exec ln -sv {} "$PWD/FASTQC" \;

Recibo enlaces simbólicos a todos mis archivos en FASTQC, pero también los siguientes mensajes de error:

ln: failed to create symbolic link '/XXX/YYY/ZZZ/aaa.fastq.gz': File exists

Cuando ejecuto los siguientes dos comandos, obtengo todos los enlaces simbólicos creados sin ningún mensaje de error.

find "$PWD" \( ! -path "$PWD/FASTQC" -type f -name *.f*q  \) -exec ln -sv {} "$PWD/FASTQC" \;
find "$PWD" \( ! -path "$PWD/FASTQC" -type f -name *.f*q.gz \) -exec ln -sv {} "$PWD/FASTQC" \;

¿Por qué recibo mensajes de error con el primer comando?

EDITAR: En caso de que alguien encuentre esta pregunta más adelante a través de Google, aquí está la versión final funcional (gracias ilkkachuy steeldriver):

find "$PWD" ! -path "$PWD/FASTQC" -type f \( -name "*.f*q" -o -name "*.f*q.gz" \) \
    -exec ln -sv {} "$PWD/FASTQC" \;

Respuesta1

( ! -path "..." -type f -name ... -o -name ...gz ) -exec ...

se analiza como

( ( ! -path "..." -type f -name ... ) -o ( -name ...gz ) ) -exec ...

porque (el implícito)yse une más fuerte queo. probablemente quieras

! -path "..." -type f ( -name ... -o -name ...gz ) -exec

para que el filtro ! -path(y -type) se aplique también a *.gzlos archivos. La final -exectambién forma parte de lo implícitoycadena, por lo que, aparte del par -ointermedio, las acciones no necesitan paréntesis alrededor de ellas.

Con tu expresión completa:

find "$PWD" ! -path "$PWD/FASTQC" -type f \( -name *.f*q -o -name *.f*q.gz \) \
    -exec ln -sv {} "$PWD/FASTQC" \;

información relacionada