Quero criar um arquivo chamado "Lista de compras" (2 palavras no nome deste arquivo)

Quero criar um arquivo chamado "Lista de compras" (2 palavras no nome deste arquivo)

Eu sei que podemos usar

cat > fire

para criar um arquivo com o nome "fogo". Mas se o nome do arquivo contém 2 palavras como “Lista de compras”, como fazer isso?

Desde

cat > Grocery list

dá a mensagem estranha cat: list: No such file or directory.

Por favor, me ajude.

Responder1

Várias maneiras:

  • Usando aspas simples em torno do nome:

    cat > 'Grocery list'
    
  • Usando aspas duplas ao redor do nome:

    cat > "Grocery list"
    
  • Fuja do espaço em branco com \:

    cat > Grocery\ list
    

Quando você faz:

cat > Grocery list

Grocerye listsão considerados duas palavras.

A direção de saída > Groceryé feita pelo shell e acontece primeiro, então o arquivo Groceryé criado e depois cat listexecutado, ou seja, listé tomado como um argumento para cat, pois presumivelmente não há nenhum arquivo listpresente no diretório atual, daí o erro sobre listo arquivo ausente .

Então, neste caso, essencialmente você está fazendo:

cat list > Grocery

Responder2

Você precisa escapar do espaço de alguma forma. heemayl lhe deu uma boa resposta, mas recomendo a leitura desta também para obter detalhes:Por que meu script de shell engasga com espaços em branco ou outros caracteres especiais?

Quanto à criação do arquivo em si, você não precisa usar o cat.

> file

basta.

informação relacionada