Quiero crear un archivo llamado "Lista de compras" (2 palabras en el nombre de este archivo)

Quiero crear un archivo llamado "Lista de compras" (2 palabras en el nombre de este archivo)

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

Groceryy listse toman como dos palabras.

La dirección de salida > Groceryla realiza el shell y ocurre primero, por lo que Groceryse crea el archivo y luego cat listse ejecuta, es decir, listse toma como argumento cat, ya que presumiblemente no hay ningún archivo presente en el directorio actual, de ahí el error sobre el archivo listfaltante. 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.

información relacionada