UNIX: Comandos em arquivos

Os comandos a seguir implementam operações básicas em arquivos:

  • ls : listar o conteúdo do diretório corrente (ou de um diretório dado).
  • rm : remover arquivos.
  • mv : movimentar arquivos.
  • cp : copiar arquivos.
  • cat : apresentar o conteúdo de arquivos.
  • more : visualizar o conteúdo de arquivos (paginado).
  • ln : criar links (atalhos).

Os comandos usados para navegação na árvore de diretórios são similares aos usados em outros sistemas operacionais:

  • pwd : indica qual o diretório corrente do shell.
  • cd : troca de diretório:
    • cd dir : muda para o diretório dir
    • cd .. : muda para o diretório pai imediatamente superior.
    • cd - : volta para o último diretório visitado.
    • cd ~user : vai para o diretório HOME do usuário indicado.
    • cd : volta ao diretório HOME.
  • mkdir dir : criação do diretório dir.
  • rmdir dir : remoção do diretório dir.

Vários comandos permitem obter maiores informações sobre arquivos e sistemas de arquivos. Eis os principais:

  • stat : detalhes sobre um arquivo ou diretório (i-nodes).
  • file : identificar o conteúdo de um arquivo, analisando-o.
  • whereis : indica onde estão os binários, fontes e páginas de manual de um comando dado.
  • touch : atualiza a data de um arquivo (o cria, se não existir).
  • which : indica o caminho completo para o comando dado.
  • du : indica o espaço usado em disco pelos arquivos ou diretórios dados.
  • df : informações sobre os sistemas de arquivos disponíveis na máquina e sua ocupação.
  • tree : apresenta na tela uma estrutura de diretórios, com ou sem os arquivos.

Tradicionalmente, a compressão de arquivos em UNIX é feita em dois passos:

  1. Aglutinação dos arquivos e diretórios em um único grande arquivo, usando o comando tar.
  2. Compressão do arquivo único, usando comandos como compress, gzip ou bzip2.

O comando tar é bastante antigo, e significa Tape ARchiving (tar também é “piche” em inglês, o que sugere o processo de aglutinação). Ele era muito usado para copiar diretórios em fitas magnéticas. Com as opções adequadas, permite guardar diversos arquivos e diretórios em um único arquivo. Sua sintaxe básica é:

  • Para criar um arquivo .tar: tar cvf arq.tar dir1 dir2 dir3 …
  • Para abrir um arquivo .tar: tar xvf arq.tar
  • Para listar o conteúdo de um arquivo .tar: tar tvf arq.tar

As principais opções do comando tar são:

  • c : criar um novo arquivo .tar com o nome indicado
  • x : extrair dados do arquivo .tar indicado
  • t : listar o conteúdo do arquivo “.tar”indicado
  • v : verbose, mostra detalhes na tela sobre o que está sendo feito
  • f : indica que o próximo parâmetro é o nome do arquivo .tar a ser usado. Caso não seja indicado, é usado o conteúdo da variável $TAPE, ou o arquivo /dev/rst0 (fita magnética).
  • z : para comprimir/expandir os arquivos tratados usando o comando gzip (ver abaixo).
  • Z : para comprimir/expandir os arquivos tratados usando o comando compress (ver abaixo).

Após feita a aglutinação, pode-se compactar o arquivo usando-se um dos comando abaixo:

  • “compress” : compactador standard do UNIX, hoje em dia pouco usado, mas presente em todas as plataformas. Gera arquivos com extensão “.Z”.
  • “gzip” : GNU-Zip, um compactador extremamente popular, é muito eficiente. Gera arquivos com extensão “.gz”.
  • “bz2” : De uso recente e ainda pouco difundido, certamente será muito usado nos próximos anos, por ser ainda mais eficiente que o gzip. Gera arquivos com extensão “.bz2”.

Um procedimento muito usado é o uso combinado dos comandos tar e gzip, através das opções “z” e “Z” do comando tar. Assim, para obter um arquivo comprimido corrente.tar.gz com todo o conteúdo do diretório corrente, basta executar o seguinte comando:

tar czvf corrente.tar.gz . (atenção ao “.”, que indica o diretório corrente)

Os arquivos “.tar.gz” também costumam ser nomeado como “.tgz”, e definem o formato da maior parte dos arquivos UNIX encontrados na Internet. Arquivos nesse formato também podem ser abertos pelas versões recentes do compactador WinZip, do Windows.

  1. Como procurar por uma palavra no manual (man)?
  2. Liste todos os arquivos do seu diretório HOME.
  3. Como você pode saber em qual diretório você está no sistema?
  4. Qual o comando para saber qual a conta que está sendo usada em um SHELL?
  5. Liste o nome do grupo de usuários ao qual sua conta pertence.
  6. Visite alguns diretórios, alternando os comandos pwd e cd. Os diretórios são os seguintes:
      /home/espinf
      o predecessor do diretório /home/espinf
      /
      /usr
      /tmp
      /usr/bin
      seu diretório HOME
  7. Liste o conteúdo dos diretórios acima, ordenados por data, de duas formas:
    1. sem sair do seu diretório HOME
    2. acessando primeiramente o diretório a ser listado
  8. O que faz a opção -a no comando ls? E a opção -l?
  9. Liste usuários do sistema com o mesmo nome que o seu
  10. O que são arquivos/diretórios cujo nome inicia com um caractere . ?
  11. Crie um link simbólico para o diretório infraComp do seu colega ao lado. Use este link para listar o conteúdo do diretório
  12. O que fazem os comandos du e df?
  13. O comando ls permite obter listagens de diretórios sob várias formas. Consulte a página de manual do comando e execute-o de forma a obter listagens da seguinte forma:
    • listagem longa do diretório home, com detalhes. O que significa cada coluna da listagem ?
    • listagem curta do diretório home, incluindo os arquivos escondidos.
    • listagem longa de /var/spool/mail, ordenada por tamanho dos arquivos
    • listagem longa de /etc, ordenada alfabeticamente
    • listagem longa de /home, ordenada por datas crescentes
    • listagem curta de /usr, recursiva e ordenada por tamanho
  14. O comando mkdir permite criar diretórios com subdiretórios. Leia sua página de manual e execute-o para criar a seguinte estrutura de diretórios (dentro de seu diretório home), usando apenas uma operação. Use o comando tree para conferir a estrutura criada:
          a
          `-- b
              |-- c
              |   |-- d
              |   |   `-- h
              |   |
              |   `-- e
              |
              |-- f
              |   `-- d
              |
              `-- j
  15. Crie um arquivo .tar, com o conteúdo do seu diretório HOME. A seguir, compacte-o usando os comando compress, gzip e bzip2, e compare os resultados (tamanho).
  • unix/comandos_basicos.txt
  • Última modificação: 2019/02/19 18:00
  • por maziero