Sé que podemos usar
cat > fire
para crear un archivo con el nombre "fuego". Pero si el nombre del archivo contiene 2 palabras como "Lista de compras", ¿cómo se hace eso?
Desde
cat > Grocery list
da el mensaje extraño cat: list: No such file or directory
.
Por favor, ayúdame.
Respuesta1
Muchas maneras:
Usando comillas simples alrededor del nombre:
cat > 'Grocery list'
Usando comillas dobles alrededor del nombre:
cat > "Grocery list"
Escapa del espacio en blanco con
\
:cat > Grocery\ list
Cuando tu lo hagas:
cat > Grocery list
Grocery
y list
se toman como dos palabras.
La dirección de salida > Grocery
la realiza el shell y ocurre primero, por lo que Grocery
se crea el archivo y luego cat list
se ejecuta, es decir, list
se toma como argumento cat
, ya que presumiblemente no hay ningún archivo presente en el directorio actual, de ahí el error sobre el archivo list
faltante. list
.
Entonces, en este caso, esencialmente estás haciendo:
cat list > Grocery
Respuesta2
Necesitas escapar del espacio de alguna manera. Heemayl te ha dado una buena respuesta, pero también recomiendo leer esta para obtener más detalles:¿Por qué mi script de shell se atasca con espacios en blanco u otros caracteres especiales?
En cuanto a la creación del archivo en sí, no es necesario utilizar cat
.
> file
es suficiente.