5 comandos para manipular diretórios e arquivos no Linux

JUNTE-SE A MAIS DE 110.000 PESSOAS QUE JÁ TEM UMA CÓPIA

Ubuntu: Iniciando com Linux de maneira prática e rápida

5 comandos diretorios arquivos linux

Compartilhe este post

Share on facebook
Share on linkedin
Share on twitter
Share on email

Os comandos para manipular arquivos e diretórios no Linux consistem em mover, remover, copiar e criar os itens utilizando a interface CLI (command-line interface). Alguns dos comandos mais comuns são: rm, mv, cp e mkdir.

Quem já conhece o Linux em nível superficial percebeu que a recorrência do uso de comandos no terminal é muito maior em relação aos populares Mac OS e Windows. São múltiplas as razões para usuários e administradores recorrerem ao terminal, sendo as principais delas:

  • o terminal é necessário para instalar programas; e
  • é a camada que mais aproxima o usuário do kernel.

5 comandos diretorios arquivos linux

Ao longo da série de publicações disponíveis no blog sobre o assunto, foram apresentados vários tipos de ferramentas e comandos úteis para gerenciar usuários e serviços, entre outros para lidar com processos de redes, downloads, compactação etc.

Desta vez, vou mostrar como utilizá-los a fim de manipular arquivos e diretórios no Linux; portanto, aprenderemos a fazer tarefas como mover, remover, copiar e criar tais elementos apenas digitando instruções no terminal. Vamos praticar? Então confira, abaixo, cinco comandos básicos.

1. mkdir

O comando mkdir é um utilitário do Linux que nos possibilita criar diretórios. Com ele, podemos rapidamente gerar múltiplos diretórios de uma só vez e configurar as suas respectivas permissões.

Vale frisar que o usuário que aciona o mkdir precisa ter permissão de acesso ao diretório pai (parent directory); do contrário, o sistema rejeitará a solicitação enviando a mensagem “permission denied”.

A sintaxe do comando é simples; primeiramente, digita-se mkdir no terminal, seguido do caminho do diretório a ser criado. Além disso, a ferramenta oferece algumas opções que podem ser aplicadas no processo, sendo elas:

-m (–mode=MODE): usada a fim de estabelecer regras e permissões ao diretório criado, de modo similar ao comando chmod;

-p (–parents): a opção -p habilita a criação de diretórios parentes quando necessário;

-v (–verbose): imprime em tela uma mensagem para cada diretório criado;

-Z: ajusta o contexto de segurança SELinux de cada diretório criado para o seu tipo padrão.

Temos outras opções à disposição além dessas mencionadas acima, como –version (exibe a versão do mkdir), –help (apresenta as opções existentes) e –context (faz o mesmo que a opção -Z ao ajustar o contexto do diretório com o SELinux).

Agora que já conhecemos um pouco os recursos oferecidos pelo mkdir, vejamos, abaixo, alguns exemplos de uso.

Criando um diretório simples

A forma mais simples de se utilizar o mkdir é criando um diretório sem nenhuma especificação além do próprio caminho. Exemplo:

mkdir Music
mkdir ~/Music

# isso fará com que o item seja criado no diretório em que você está navegando no momento

Criando uma sequência de subdiretórios

Agora nós vamos utilizar a opção -p a fim de criar subdiretório dentro do diretório Music, expandindo para vertentes musicais e outros detalhes que ajudem na organização dos arquivos. Exemplo:

mkdir -p Music/Rock/Punk/Clash

Por meio do comando o usuário consegue criar quantos diretórios desejar e sem interligá-los, necessariamente. Veja:

mkdir -p Music/Rock/Indie Music/80s/A-Ha Music/Rock/Nacional/Nação Zumbi Music/Rap/2Pac

ou

cd Music/Rock
mkdir -p ~/Punk Pop Metal Indie Hardcore Classic Classic/60s Classic/70s

Comparado ao método convencional via interface gráfica, por exemplo, o mkdir nos ajuda a economizar bastante tempo com a organização de diretórios.

Aplicando permissões aos diretórios recém-criados

Suponha-se que o computador no qual criamos as pastas acima seja compartilhado, sendo que cada usuário tem as suas próprias credenciais de acesso, e todos devem ter acesso aos conteúdos (no caso, músicas). Vamos usar a opção -m e conceder as permissões necessárias?

mkdir -m a=rwx Music

Note que há presença de outros elementos fora o m. Começando pelo a (all), este é um parâmetro que estabelece a aplicação das permissões a todos os usuários da máquina. Já as letras r, w e x significam read, write e execute, respectivamente — em outras palavras, elas são as permissões para leitura, escrita e execução dos arquivos presentes no diretório.

2. rmdir

Quando desejamos remover diretórios, um dos comandos que podemos utilizar é o rmdir, porém existe um critério impeditivo para que ele funcione: os diretórios a serem removidos não devem conter arquivos ou subdiretórios.

Logo, se você tentar deletar o diretório “Rock” que criamos nos exemplos anteriores, aparecerá a mensagem de erro <failed to remove ‘Rock’: Directory not empty>. Por mais que isso torne o comando, digamos, “menos eficiente”, dependendo do caso é possível contornar o problema.

Quando a árvore de diretórios é composta por muitos subdiretórios, é necessário especificar as últimas pastas, primeiramente, usando a opção p (cuja função é a mesma do mkdir), deixando o diretório parent para o final de modo a esvaziá-lo. Vamos a um breve exemplo:

cd Music

rmdir -p Rock/Classic/60s Rock/Classic/70s Rock/Classic Rock Rock

É bem provável que tenham surgido mensagens de erro após a operação acima, correto? Em contrapartida, os diretórios desapareceram dali, não é mesmo? Isso significa que fomos efetivos. Mas como evitar as mensagens? Elas podem ser ignoradas ao digitarmos –ignore-fail-on-non-empty. Exemplo:

rmdir -p --ignore-fail-on-non-empty Rock/Classic/60s Rock/Classic/70s Rock/Classic Rock Rock

Cabe uma observação: este não é o único jeito de remover diretórios e, mais do que isso, o rmdir não é o comando mais utilizado para a tarefa.

3. rm

O comando rm é próprio para remoção de objetos em um sistema baseado em Linux ou Unix. Isso significa que tanto dados quanto os pontos de referência a eles no sistema de arquivos, como um link simbólico. Até por isso, o item em questão tem de ser especificado com os detalhes necessários para que seja desassociado incorretamente.

Tomar essa precaução é muito importante quando se decide utilizar o comando rm, justamente porque, ao ser deletado, , o espaço liberado passa a ficar disponível para armazenar dados futuros; portanto o arquivo removido se torna inacessível e, então, irrecuperável. Não há nada a fazer para reciclá-lo quando isso acontece.

Se lembra do que falei há pouco sobre o rmdir não ser o comando mais utilizado para remover diretórios? Pois então, o rm, embora não o faça por padrão, é bastante utilizado para isso, mais precisamente a sua correspondência no sistema de arquivos.

Porém, antes de aprendermos a realizar essa e outras tarefas com o rm, vamos ver as opções que a ferramenta oferece?

Opções disponíveis no comando rm

Digitando rm –help, uma série de informações são exibidas na tela, dentre as quais quero destacar:

-f (–force): ignora arquivos e argumentos inexistentes, sem prompt;

-r, -R (–recursive): remove diretórios e respectivos conteúdos recursivamente;

-d, –dir: remove diretórios vazios;

-v (–verbose): explique as ações promovidas com o uso do comando rm;

–preserve-root: não remove o diretório root;

–one-file-system: ao remover uma hierarquia recursivamente, o comando pula qualquer diretório que se encontre em um sistema de arquivos diferente daquele argumentado.

Com as informações acima é possível termos uma noção de como aplicar o comando rm de maneira mais efetiva e prudente — isto é, sem correr riscos com a remoção, como a exclusão do diretório root, embora esta opção seja padrão justamente para não acontecer um desastre do tipo.

Exemplos de uso do comando rm

Depois da introdução e da apresentação de algumas opções, chegou a hora de praticar o comando rm; abra o seu terminal e, de preferencia, crie arquivos e diretórios especialmente para testes. Vamos começar?

Removendo arquivos

O processo de remoção de arquivo é bastante simples. A sintaxe consiste no próprio comando rm acompanhado da opção e o item a ser excluído. Exemplo:

rm arquivo.txt

Perceba que a função básica nem mesmo requer a escolha de uma opção. Além disso, o comando também não retornará nenhuma mensagem a menos que ocorra um erro (arquivo ou diretório inexistente, por exemplo).

Contudo, se o arquivo tem o nome iniciado por um traço / dash (“-“), é preciso evitar que o caractere faça com que a ferramenta interprete-o como uma opção. Para isso, digite um traço duplo ou ponto + barra (“./”) antes de declarar o arquivo. Exemplo:

rm -- -arquivo.pdf

ou

rm ./-arquivo.pdf

Uma alternativa a isso é declarar o caminho para o referido arquivo. Exemplo:

rm /Documents/Downloads/-arquivo.pdf.

Removendo múltiplos arquivos

Agora vejamos uma situação de múltiplos arquivos. Suponha-se que os itens existentes em um diretório sejam listados com o comando ls.

ls

draft.doc hello-world.txt programming_in_lua.pdf xyz.txt

Dentre os elementos acima, há um arquivo que não é descartável, mas não faço questão de manter os demais. Então vou simplesmente declarar:

rm draft.doc hello-world.txt xyz.txt

Pronto. Com isso, excluí o que desejava e mantive um ótimo livro no disco rígido.

Excluindo um diretório

Como remover diretórios com o comando rm sendo que, por padrão, ele não o faz? Existem duas maneiras de prosseguir, cada uma adequada a uma situação; a primeira delas é a remoção de correspondências dos diretórios e os conteúdos que eles armazenam.

rm -r /diretório/arquivos/dados

Estando o diretório vazio (após o uso do comando a fim de limpar a pasta, por exemplo), use a opção -d e, então, o diretório será definitivamente removido.

4. mv

O comando mv é utilizado no Linux para mover e renomear objetos, os quais podem ser arquivos e diretórios. É, sem dúvidas, das ferramentas mais comuns entre os usuários acostumados a navegar pelo terminal.

A sua sintaxe é muito similar a tudo que vimos até aqui; o comando é acompanhado, geralmente, de uma opção e, necessariamente, do item a ser movido e do diretório de destino. Exemplo:

mv -f arquivo.png /Pictures/Projects/Design

A instrução acima executa a transferência do arquivo de imagem (arquivo.png) do local atual para o diretório /Pictures/Projects/Design sem prompt antes de sobreposição (opção -f), ou seja, se o elemento está sendo gravado por cima de outro com o mesmo nome e mesma extensão, a ferramenta prosseguirá sem solicitar confirmação.

O mesmo procedimento pode ser feito com múltiplos arquivos e com um único comando. Para isso, digite os nomes dos dados que deseja mover e declare o diretório destino. Exemplo:

mv texto.txt script.sh book.pdf song.mp3 /Documents/Files

Simples, não é mesmo?

Moção de diretórios

A lógica é a mesma quanto a mover diretórios no Linux; aplicando a mesma sintaxe, basta digitarmos o comando mais a opção, se houver, e os diretórios de origem e destino, respectivamente. Vejamos um breve exemplo:

mv /Documents/Projects/Design Works/Design

Renomeação de arquivos e diretórios

Como eu disse no início do tópico, o comando mv tem a capacidade de renomear arquivos, também. Supondo que o usuário pretenda mover o item ciente de que no diretório destino existe outro com o mesmo nome, conforme o exemplo anterior, mas não queira substituí-lo; basta ele fazer o seguinte:

mv arquivo.png /Pictures/Projects/Design/logotipo_3.png

Nesse caso, o uso da opção -f é desnecessário, pois o arquivo foi renomeado antes de ser movido para a nova pasta.

Já a renomeação de diretórios é similar à moção, porém o destino é até então inexistente, sendo ele criado durante o processo de modo que a pasta de origem se torna o seu subdiretório. Exemplo:

mv /Documents/Projects /Documents/Works

5. cp

O comando cp é próprio para cópia de arquivos e diretórios. Um recurso bem legal do cp, considerando o fator CLI, é a cópia de um ou mais itens com opção de cópias de segurança (backups) e preservação das suas características.

Falando em características, os comandos elencados neste artigo têm a sintaxe em comum, isto é, comando + opção (se houver) + objeto, o que não é diferente quando copiamos arquivos e diretórios no terminal usando o cp. Por exemplo, se o usuário deseja copiar um ou mais arquivos:

ls

foo.rar txt.doc book.pdf ubuntu.iso

cp foo.rar ubuntu.iso

ou

cp foo.rar ubuntu.iso /Diretório/Destino

# nesse caso, copiamos os arquivos para outro diretório

Se a intenção é copiar um diretório, pode-se aplicar a opção -r ou -R, que aciona a recursividade, e declarar os diretórios de origem e destino. Exemplo:

cp -r /home/mp3 /Documents/Music

Quer fazer um backup dos arquivos enquanto eles são copiados para o endereço de destino? Para isso, temos a opção –backup=, que deve ser acompanhada de uma opção de backup :— normalmente, usa-se o controle “simple”. Exemplo:

cp --backup=simple /home/mp3/song_2.mp3 /Documents/Music/Blur

Encerramos aqui mais um artigo onde ensinamos comandos básicos de terminal; neste conteúdo em especial, foram apresentados comandos para manipular diretórios e arquivos no Linux, imprescindíveis a profissionais que gerenciam redes e sistemas.

Quer se aprofundar ainda mais em Linux? Aproveite para conhecer os cursos oferecidos na página Profissionais Linux!

Compartilhe este post

Share on facebook
Share on linkedin
Share on twitter
Share on email

Artigos Recentes

Aprenda a dominar o Linux de uma vez por todas

Aprenda a dominar o Linux de uma vez por todas