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
Grocery
e list
sã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 list
executado, ou seja, list
é tomado como um argumento para cat
, pois presumivelmente não há nenhum arquivo list
presente no diretório atual, daí o erro sobre list
o 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.