
Eu vi o comando cat aparecer em algumas coisas on-line e fiquei curioso para saber o que cat
fazia e para que serve no contexto de alguém que está apenas fazendo algumas coisas simples de linha de comando.
Responder1
cat
O objetivo principal do é congatoenate arquivos. cat file1 file2 ...
irá mostrar o conteúdo de file
, file2
e os demais um após o outro, como se o conteúdo estivesse em um único arquivo. Veja opágina de manual:
NAME
cat - concatenate and print files
Destina-se ao uso onde:
um comando de destino não pode ler arquivos e você precisa passar vários arquivos para ele. Um exemplo é o
tr
Utilitário. Normalmente, com um arquivo, você faria:tr < file
Mas com vários arquivos, o redirecionamento não pode ser usado, então você precisa fazer:
cat file1 file2 ... | tr
- um comando de destinopodelê vários arquivos, mas seu comportamento pode mudar quando recebe vários arquivos. Um exemplo é
wc
, que imprime as contagens de cada arquivo, junto com os nomes dos arquivos, onde você poderia querer apenas o total, sem um nome de arquivo.
Lembre-se de que a maioria dos comandos que você encontra ( grep
, sed
, awk
, sort
, ...) podem ler arquivos perfeitamente.
Se você quiservisualizaro conteúdo de um arquivo,use umpager-less
emore
ambos são eminentemente capazes de apresentar arquivos para visualização e são muito mais convenientes de usar.
Responder2
cat
é um dos comandos usados com mais frequência em sistemas operacionais do tipo Unix. Possui três funções relacionadas em relação aos arquivos de texto:
- exibindo-os
- combinando cópias deles
- criando novos.
- Copiar arquivos
a sintaxe geral do gato é:
cat [options] [filenames] [-] [filenames]
Lendo arquivos
O uso mais comum de cat é ler o conteúdo de arquivos, e cat costuma ser o programa mais conveniente para essa finalidade. Tudo o que é necessário para abrir um arquivo de texto para visualização no monitor é digitar a palavra cat seguida de um espaço e o nome do arquivo e a seguir pressionar a tecla ENTER. Por exemplo, o seguinte exibirá o conteúdo de um arquivo chamado file1:
cat file1
Concatenação
A segunda função do gato é a concatenação. (Esta é a fonte do curioso nome do gato.) Não há efeito nos arquivos originais.
Por exemplo, o comando a seguir concatenará cópias do conteúdo dos três arquivos arquivo1, arquivo2 e arquivo3:
cat file1 file2 file3
O conteúdo de cada arquivo será exibido na tela do monitor. Essa saída poderia ser facilmente redirecionada usando o operador de redirecionamento de saída para outro arquivo, como file4, usando o seguinte:
cat file1 file2 file3 > file4
Criação de arquivo
Graças a@muruComente :cat é capaz de criar novos arquivos dependendo do recurso de redirecionamento do shell e não dele mesmo
Para arquivos pequenos, isso geralmente é mais fácil do que usar o vi, o gedit ou outros editores de texto. Isso é feito digitando cat seguido do operador de redirecionamento de saída e do nome do arquivo a ser criado, pressionando ENTERe finalmente pressionando simultaneamente as teclas Ctrl& .d
Por exemplo, um novo arquivo chamado file1 pode ser criado digitando
cat > file1
em seguida, pressione ENTERe pressione simultaneamente as teclas Ctrl& d.
PS1: Se um arquivo chamado file1 já existir, ele será sobrescrito
PS2: você pode anexar ao arquivo encerrado usando >>
o exemplo do operador de acréscimo cat >> arquivo1
Copiar arquivos
O comando cat também pode ser usado (dependendono recurso de redirecionamento de shell) para criar um novo arquivo e transferir para ele os dados de um arquivo existente. Exemplo: faça uma cópia do arquivo oldfile.txt
:
cat oldfile.txt > newfile.txt
Referências:
Responder3
Pode ser usado para mostrar o conteúdo de um arquivo. Por exemplo: cat "my file.txt"
. Você também pode fazer isso man cat
para mostrar os detalhes sobre o que cat
pode ser usado.
Responder4
Aqui estáoutra maneirapara criação de arquivos usando redirecionamento de shell (ou tubulação) e cat
:
cat << EOF > foo.sh
#!/bin/sh
echo 'Hello World!'
EOF
cat << EOF
produzirá as seguintes linhas até que a string EOF
seja encontrada novamente. Então >
( >>
) redirecionará a saída para o arquivo foo.sh
. Alternativamente, se você precisar criar um arquivo como root, você pode canalizar a saída para o comando tee
( tee -a
), executado pelo comando sudo
:
cat << EOF | sudo tee foo.sh && sudo chmod +x foo.sh
#!/bin/sh
HELLO='Hello World!'
echo "\$HELLO"
EOF
- O procedimento acima tornará o arquivo executável (
chmod +x
) se for criado com sucesso (&&
). - O significado especial de alguns caracteres (como
$
) deve ser escapado (com\
) na saída decat
.