Tenía la impresión de que podría ser más seguro usarlo ./*.fastqcuando busque archivos que terminen en .fastq. Por ejemplo, ./evitaría capturar el archivo .fastq. Esto obviamente es incorrecto, como se muestra en el siguiente ejemplo:
TMP_DIR=$(mktemp --directory)
mkdir -p ${TMP_DIR}
(cd ${TMP_DIR}
touch {a,b,c,}.fastq
ls -a
echo ""
echo "# match all:"
for f in *.fastq ; do
echo "${f}"
done
echo ""
echo "# with ./:"
for f in ./*.fastq ; do
echo "${f}"
done
)
rm -rf ${TMP_DIR}
.
..
a.fastq
b.fastq
c.fastq
.fastq
# match all:
a.fastq
b.fastq
c.fastq
# with ./:
./a.fastq
./b.fastq
./c.fastq
Ni *.fastqtampoco ./*.fastqcoincide con el archivo .fastq. Entonces, me pregunto, ¿hay algún punto para usar ./*.fastqaquí, o ./*en general?

./*es que garantiza que los nombres que comienzan con-no sean tratados como opciones.Respuestas:
Inicialmente, eso es un comportamiento sorprendente de comodín, ya que la descripción del
*carácter comodín dice:... hasta que te des cuenta de que el período es ligeramente especial cuando es el primer carácter de un nombre de archivo. El texto introductorio en lo
3.5.8 Filename Expansiondice:El "patrón de uso" de prefijar comodines con
./es útil para manejar nombres con guiones iniciales en bash shell , como comentó steeldriver. No tiene ningún efecto sobre la expansión del comodín / nombre de archivo, pero hace que sea más seguro / fácil manejar los nombres de archivo cuando se hace referencia a ellos, si comienzan con caracteres que esos programas podrían malinterpretar como opciones. Por ejemplo:... y ahora que tengo un archivo llamado
-n, si sucede que lo recorro con un comodín:... no tengo salida!
Pero si prefijo el comodín con
./,... veo el nombre del archivo.
Este es un ejemplo simple para fines de demostración; ver también ¿Por qué es printf mejor que echo? Por este motivo y otros. Otras utilidades se verán disparadas por otras opciones, por lo que es mejor presentar los nombres de archivo a las utilidades de la manera más segura posible. Si no prefijas el comodín para "escapar" de los nombres de archivo, tendrás que "proteger" tus utilidades de otras maneras; uno común es señalar el final de las opciones con
--, por ejemplo:... que pasará con seguridad el
-nnombre de archivo amv(como se ve debajoset -x):fuente