Cómo leer los files del tablero

¿Cómo puedo leer un file de tablero desde el terminal que no sea delimitarlo con ./

Por ejemplo, para leer un - file , podemos leerlo

cat ./-file_name

P: ¿Hay una forma alternativa de lograr lo mismo?

Para los commands que obtienen input de stdin, puede usar la networkingirección:

 cat <-file_name 

Use doble -- para marcar el final de las opciones:

 cat -- -<FILENAME> 

Otros progtwigs como touch , rm o git checkout también siguen esta convención:

 $ touch -- -file $ ll total 0 -rw-r--r-- 1 ja ja 0 Mar 10 13:13 -file $ echo hi! >> -file $ cat -- -file hi! $ rm -- -file $ echo $? 0 

ADVERTENCIA: Es una buena práctica usar siempre -- después de rm en scripts. Un atacante podría colocar el file --rf en un directory y rm * lo tomaría como parameters de ejecución. Mira esto:

 $ touch A $ touch B $ mkdir dir $ touch dir/C $ touch -- -rf $ rm * $ ll total 0 -rw-r--r-- 1 ja ja 0 Mar 10 13:21 -rf 

Vaya, esto no es lo que queríamos decir, no queríamos eliminar directorys. Deberíamos haber usado -- :

 $ touch A $ touch B $ mkdir dir $ touch dir/C $ touch -- -rf $ rm -- * rm: cannot remove `dir': Is a directory $ ll total 4.0K drwxr-xr-x 2 ja ja 4.0K Mar 10 13:22 dir 

Las alternativas se vuelven raras:

 dd if=-x 2>/dev/null