quarta-feira, 10 de julho de 2013

Linux - Comandos Básicos - Gerenciamento de Arquivos


Neste post estão relacionados os comandos básicos em Linux necessários para o gerenciamento de arquivos no sistema. A lista conta com comandos para criação, cópia, remoção, visualização, entre outros. É importante entender que para trabalhar com arquivos não é necessário estar na mesma pasta ou diretório onde estes arquivos estão localizados. No sistema Linux são aplicados os conceitos de caminho absoluto, que é caminho completo para alcançar um arquivo desde a raiz do sistema, e caminho relativo, que é o caminho para alcançar um arquivo a partir do diretório de trabalho.


Criar arquivo

 $ touch [nome do arquivo]

Originalmente este comando modifica o timestamp de um arquivo. Se o arquivo não existir no sistema ele será criado, no entanto sem conteúdo (vazio). No Linux não há a necessidade de que um arquivo possua extensão. Para identificar de que tipo é o arquivo você pode utilizar o comando " file ".


Copiar arquivo

 # cp [arquivo_original] [arquivo_destino]

Comando utilizado para copiar arquivos. Caso você queira copiar o arquivo para um outro diretório basta indicar a pasta de destino. Vale lembrar que se você utilizar o comando indicando o nome de um arquivo existente na pasta de destino este será sobrescrito.

 # cp [arquivo_original] [diretório de destino]

Permite copiar o arquivo da pasta atual (diretório de trabalho) para pasta de destino. O nome do arquivo é preservado. Para realizar cópias entre diferentes pastas é necessário indicar o caminho do arquivo de origem e informar o caminho do arquivo de destino.

Opções mais comuns:
-i    Solicita confirmação antes de sobrescrever um arquivo
-p    Mantêm os atributos e as permissões de acesso do arquivo original
-u    Realiza a cópia apenas quando o arquivo de origem for mais atualizado que o arquivo de destino (sobrescrita)

Sintaxe: cp [opções] [arquivo_original] [arquivo_destino]


Mover arquivo

 # mv [arquivo_original] [diretório de destino]

Comando utilizado para mover arquivos entre diretórios. É possível mover arquivos e diretórios em conjunto colocando-os em sequência e separando-os por espaço. Esse comando também permite renomear um arquivo ou diretório bastando que você indique o novo nome para o arquivo/diretório no campo de destino.


Excluir / Remover arquivo

 # rm [nome do arquivo]

Comando utilizado para excluir arquivos. Para excluir arquivos em uma pasta diferente do diretório atual é necessário indicar o caminho da localização desse arquivo.

Opções  mais comuns
-i (interativo) Gera uma pergunta antes da remoção do arquivo
-r Executa a ação de forma recursiva
-v (Verbose) Mostra as ações tomadas após a execução do comando

Sintaxe: rm [opções] [nome do arquivo]


Renomear arquivo

 # mv [nome atual do arquivo] [novo nome do arquivo]

Comando utilizado para renomear arquivos. Este também pode ser utilizado para mover arquivos entre diretórios. (Vide Mover arquivo).


Identificar tipo de arquivo

 $ file [nome do arquivo]

O comando file é usado para identificação do tipo de um arquivo. Em sistemas Linux não há a “exigência" de que um arquivo esteja associado a uma extensão (.txt, .doc, .jpg) como ocorre no Windows.


Localizar arquivo

 # find [diretório] -name [nome do arquivo] -print

Comando utilizado para localizar arquivos no sistema. O comando fará uma busca recursiva analisando todos os arquivos e subdiretórios a partir da pasta indicada.

A opção -name indica que o arquivo procurado precisa atender ao que foi especificado no campo nome do arquivo e a opção -print permite mostrar na tela todas as ocorrências da busca. A indicação de um " . "  para representar o diretório significa que a busca será realizada a partir do diretório de trabalho. Se você indicar uma "./ " a busca será realizada a partir da raiz.

Existem várias opções de busca utilizando parâmetros como data, extensão, proprietário, permissão, etc. Para mais detalhes você pode consultar o manual desse comando digitando: man find

_______________________________________________

Todos os comandos shell relacionados neste post são baseados na distribuição Linux Debian. As informações contidas acima tem como referência o próprio sistema operacional através de seus guias de ajuda e informações obtidas através do site GNU.org.