10 comandos para gerenciar arquivos no Linux
Tecnologia

10 comandos para gerenciar arquivos no Linux

Aprender alguns comandos para gerenciar arquivos é um dos caminhos para ganhar produtividade no Linux e espero que este artigo ajude você a perder o medo de aprender coisas novas, especialmente no terminal.

Quase tudo o que você faz no terminal pode ser feito também por meio de uma interface gráfica, então para que aprender comandos para gerenciar arquivos pelo terminal? Continue lendo para saber como isso pode mudar a maneira como você interage com a sua distribuição Linux.

Por que eu deveria aprender comandos para gerenciar arquivos?

O domínio dos comandos para gerenciar arquivos permitirá que você acelere tarefas repetitivas através de um script, e cada comando aprendido abre portas para você automatizar a sua vida digital, por exemplo:

  • Crie scripts pós-instalação e personalize a sua distribuição Linux em minutos;
  • Faça backup dos seus arquivos;
  • Remova arquivos temporários e limpe o seu sistema;
  • Navegue mais rapidamente no terminal;
  • Compartilhe o perfil de usuário de um navegador com outro compatível em dual-boot, por exemplo, faça com que o Firefox do seu Windows use o mesmo perfil do Firefox do Linux;
  • Execute comandos em vários arquivos em sequência, por exemplo, redimensionando imagens.

O céu é o limite, mas, tudo começa com o seu aprendizado. Comando a comando, fazendo testes e ganhando intimidade.

Alguns dos comandos para gerenciar arquivos

Existem centenas de comandos para gerenciar arquivos, mas você precisa começar por alguns, sem se preocupar com os mais avançados, pois já chegará a hora em que você poderá dizer que é um “programador de scripts”. Vejamos alguns deles.

Nota: alguns dos comandos abaixo podem apagar arquivos ou informações relevantes para você, faça backup e teste numa máquina virtual até estar confortável e dominar o funcionamento das funções.

1. cp — Copiar arquivos e pastas

Copiar um arquivo para outro lugar definindo um nome para o arquivo de destino:

cp caminho/para/arquivo_entrada.ext caminho/para/arquivo_destino.ext

Copiar um arquivo para outra pasta, mantendo o nome:

cp caminho/para/arquivo.ext caminho/para/pasta

Copiar recursivamente o conteúdo de uma pasta para outro lugar (se o destino existe, a pasta é copiada para dentro dela):

cp -r caminho/para/pasta_fonte caminho/para/pasta_alvo

Copiar uma pasta recursivamente, mostrando detalhes do processo (modo verboso):

cp -vr caminho/para/pasta_fonte caminho/para/pasta_alvo

Copiar arquivos de texto para outro lugar, em modo interativo (exige confirmação do usuário antes de sobrescrever):

cp -i *.txt caminho/para/pasta_alvo

2. mv — Mover arquivos entre pastas ou renomeá-los

Move um arquivo para uma pasta arbitrária:

mv caminho/para/arquivo_entrada caminho/para/arquivo_destino

Move arquivos para outra pasta, mantendo os nomes dos arquivos:

mv arquivo_1 arquivo_2 arquivo_3 caminho/para/arquivo_destino

Não pedir confirmação para sobrescrever arquivos (use com cuidado):

mv -f arquivo caminho/para/arquivo_destino

Requisita confirmação para sobrescrever arquivos, independentemente das permissões dos arquivos:

mv -i arquivo caminho/para/arquivo_destino

Não sobrescreve arquivos existentes na pasta de destino:

mv -n arquivo caminho/para/arquivo_destino

3. rm — Remove arquivos ou pastas

Remove os arquivos especificados no comando:

rm caminho/para/arquivo_entrada caminho/para/outro/arquivo_entrada

Remove recursivamente uma pasta e todos os seus subdiretórios:

rm -r caminho/para/pasta

Força a remoção de uma pasta, sem pedir confirmação nem mostrar mensagens de erros:

rm -rf caminho/para/pasta

Remove vários arquivos de uma pasta, pedindo confirmação a cada um deles:

rm -ri caminho/para/pasta/*

Remove vários arquivos de uma pasta, mostrando detalhes do processo (modo verboso):

rm -v caminho/para/pasta/*

4. touch — Cria arquivos, altera data de acesso/modificação de um arquivo

Cria um arquivo:

touch -c caminho/para/arquivo.txt

Cria múltiplos arquivos:

touch -c caminho/para/arquivo{1,2,3}.txt

Cria novo(s) arquivo(s) vazio(s) ou altera data do(s) arquivo(s) para o momento atual:

touch caminho/para/arquivo

Define a data de um arquivo para uma data e hora específica:

touch -t YYYYMMDDHHMM.SS caminho/para/arquivo

Usa a data atual de um arquivo para definir a de um segundo arquivo:

touch -r caminho/para/arquivo1 caminho/para/arquivo2

5. cd — Altera a pasta de trabalho atual

Vai para a pasta informada:

cd caminho/para/pasta

Vai para o pasta home do usuário atual:

cd

Vai para o pasta pai (imediatamente anterior) da pasta atual:

cd ..

Vai para o pasta escolhida anteriormente:

cd -

6. ls — Lista o conteúdo de uma pasta

Lista um arquivo por linha:

ls -1

Lista todos os arquivos, inclusive os arquivos ocultos:

ls -a

Lista todos os arquivos, com o separador `/` adicionado ao nome das pastas:

ls -F

Lista longa (permissões, posse de arquivos, tamanho e data de modificação) de todos os arquivos:

ls -la

Lista longa com o tamanho dos arquivos registrado de forma legível (KiB, MiB, GiB, etc.):

ls -lh

Lista apenas pastas:

ls -d */

7. cat — Exibe e concatena o conteúdo de arquivos

Exibe o conteúdo de um arquivo no terminal:

cat caminho/para/arquivo

Concatena o conteúdo de vários arquivos em um arquivo de destino:

cat caminho/para/arquivo1 caminho/para/arquivo2 > caminho/para/arquivo_destino

Adicionar o conteúdo de vários arquivos ao final de um arquivo de destino:

cat caminho/para/arquivo1 caminho/para/arquivo2 >> caminho/para/arquivo_destino

Exibe o conteúdo de um arquivo no terminal numerando as linhas:

cat -n caminho/para/arquivo

8. ln — Cria links para arquivos e pastas

Cria um link simbólico para um arquivo ou pasta:

ln -s caminho/para/arquivo_ou_pasta caminho/para/link/simbólico

Sobrescreva um link simbólico (force) para apontar para outro arquivo:

ln -sf caminho/para/novo/arquivo caminho/para/link/simbólico

Crie um link físico (hard link) para um arquivo:

ln caminho/para/arquivo caminho/para/link/simbólico

9. rmdir — Remove uma pasta

Remove uma pasta se estiver vazia:

rmdir caminho/para/pasta

Remove uma pasta que não está vazia:

rm -r caminho/para/arquivo

Remove a pasta e todos os seus subdiretórios:

rmdir -p caminho/para/pasta

10. find — Encontra recursivamente arquivos ou pastas

Encontre arquivos com determinada extensão:

find caminho/para/pasta/pai -name '*.ext'

Encontre arquivos que sejam iguais a determinados padrões (onde “ext” é a extensão dos arquivos):

find caminho/para/pasta/pai -path '**/path/**/*.ext' -or -name '*pattern*'

Encontre pastas com determinado nome (independente de letras minúsculas/maiúsculas e onde “lib” é parte do nome das pastas que deseja encontrar):

find caminho/para/pasta/pai -type d -iname '*lib*'

Encontre arquivos com determinado padrão, exceto os que estejam em determinados caminhos (onde “py” é a extensão dos arquivos e “site-packages” faz parte do caminho que se deseja excluir da busca):

find caminho/para/pasta/pai -name '*.py' -not -path '*/site-packages/*'

Encontre arquivos com determinada faixa de tamanho (no caso, de 500kB até 10MB) e limite a busca para apenas um subdiretório-filho abaixo, isto é, profundidade de recursividade igual a 1):

find caminho/para/pasta/pai -maxdepth 1 -size +500k -size -10M

Execute um comando para cada arquivo encontrado (use `{}` com o comando, neste caso, o comando “wc” é executado em todo arquivo com extensão .ext):

find caminho/para/pasta/pai -name '*.ext' -exec wc -l {} \;

Encontre os arquivos modificados nos últimos 7 dias:

find caminho/para/pasta/pai -daystart -mtime -7

Encontre e exclua os arquivos vazios (0 byte):

find caminho/para/pasta/pai -type f -empty -delete

Agora chegou a sua vez de testar e aprender. Copie e faça backup de alguns arquivos e pastas, use algum dos comandos acima e vá construindo os seus scripts.

Você gosta de aprender coisas novas? Então não perca a nossa newsletter semanal sobre tecnologia e o mundo open-source.

Diolinux Ofertas - Aproveite os melhores descontos em diversos produtos!
64 postagens

Sobre o autor
Para mim, as melhores coisas da vida são gratuitas e não tem preço. Sou apaixonado por compartilhar conhecimento e experiências sobre tecnologia e software livre.
Artigos