quinta-feira, 14 de novembro de 2013

Manipulando Arquivos

Apresenta os seguintes comandos:
  • cp - copia arquivos e diretórisos.
  • mv - move ou renomeia arquivos e diretórios.
  • rm - remove arquivos e diretórios.
  • mkdir - cria novos diretórios.
Estes comandos estão entre os mais usuais n Linux. Eles são comandos básicos para manipular arquivos e diretórios. Porque deveríamos usar estes velhos programas de linha de comando? 
A resposta é poder e flexibilidade. Embora seja fácil executar uma simples manipulação de arquivos com o gerenciador de arquivos gráfico, complexas tarefas pode ser mais fácil com programas em linha de comando. Por exemplo, como poderia você copiar todos os arquivos HTML de um diretório para outro, mas somente copiar arquivos que não existia no diretório de destino ou renovar as versões no diretório de destino? Muito difícil com um gerenciador de arquivos. Muito fácil com a linha de comando:

[alexandre@linux]$ cp -u *.html destination

Wildcards (Coringas)

São símbolos utilizados para substituir ou representar um ou mais caracteres. Este é um recurso do interpretador de linha de comando shell que faz com que seus comandos seja tão poderoso. Uma vez que o programa shell usa muitos nomes de arquivos, ele fornece caracteres especiais para ajudá-lo a especificar rapidamente grupos de nomes de arquivos. Estes caracteres especiais são chamados de curingas. Wildcards permitem selecionar nomes de arquivos com base em padrões de caracteres. A tabela abaixo relaciona os wildcards e que eles selecionam:


Resumo dos wildcards e seus significados
WildcardSignificado
*representa qualquer caractere
?representa qualquer caractere avulso
[characters]
representa qualquer caractere que é membro dos personagens definidos. O conjunto de caracteres podem também ser expressa como uma classe de caracteres POSIX tal como um dos seguintes:

                    Posix Classes de Caractere:
            [: alnum:] caracteres alfanuméricos
            [: alpha:] caracteres alfabéticos
            [: digit:] numerais
            [: upper:] caracteres alfabéticos maiúsculos
            [: lower:] caracteres alfabéticos em minúsculas
[!characters]Representa qualquer caractere que não faz parte do conjunto de caracteres.


Usando wildcards, é possível construir critérios de selecionamentos sofisticados para nomes de arquivos. Aqui estão alguns exemplos de padrões e o que eles representam:

Exemplos de representação wildcard
PatternMatches
*todos nomes de arquivos
g*todos nomes de arquivos que inicia com o caractere "g"
b*.txttodos nomes de arquivos que inicia com o caractere "b" e termina com os caracteres ".txt"
Data???qualquer nomes de arquivos que inicia com os caracteres "Data" seguido por exatos 3 caracteres adicionais
[abc]*qualquer nomes de arquivos que inicia com "a" ou "b" ou "c" seguido por quaisquer outros caracteres
[[:upper:]]*qualquer nomes de arquivos que inicia com uma letra maiúscula. Este é um exemplo de uma classe caractere
BACKUP.[[:digit:]][[:digit:]]Outro exemplo de classes caractere. Este padrão representa qualquer nome de arquivo que inicia com os caracteres "BACKUP." seguido por exatos 2 números.
*[![:lower:]]qualquer nome de arquivo que não termina com uma letra minúscula.

Você pode utilizar wildcards com qualquer comando que aceita argumentos de nome de arquivo.

cp

O programa cp copia arquivos e diretórios. Em sua forma mais simples, ele copia um simples arquivo:

[alex@linux]$ cp arquivo1 arquivo2

Pode ser utado para copiar múltiplos arquivo para diretório diferente:

[alex@linux]$ cp arquivo1 arquivo2 arquivo3 diretório

Outros exemplos úteis de cp e suas opções incluem:
Exemplos do comando cp
ComandoResultado
cp arquivo1 arquivo2Copia o conteúdo do arquivo1 para o arquivo2. Se o arquivo2 não existir, ele é criado; senão o arquivo2 é sobrescrito com o conteúdo do arquivo1.
cp -i arquivo1 arquivo2Como acima entretanto, desde que a opção "-i" (interactive) é especificada, se o arquivo2 existir, o usuário é solicitado antes do arquivo2 ser sobrescrito com o conteúdo do arquivo1.
cp arquivo1 diretório1Copia o conteúdo do arquivo1 (dentro de um arquivo nomeado arquivo1) dentro do diretório diretório1.
cp -R diretório1 diretório2Copia o conteúdo do diretório1. Se o diretório2 não existir, ele será criado. Senão ele cria um diretório chamado diretório1 dentro do diretório2 dir2.

mv

O comando mv possui duas diferentes funções dependendo como isto é usado. Ele tanto mover um ou mais arquivos para um outro diretório, quanto renomeará um arquivo ou diretório. Para renomear um arquivo, ele é usado desta maneira:

[alex@linux]$ mv arquivo1 arquivo2

Para mover arquivo para um diretório diferente:

[alex@linux]$ mv arquivo1 arquivo2 arquivo3 diretorio

Exemplos de mv e suas opções incluem:
Exemplos do uso do comando mv
ComandoResultado
mv arquivo1 arquivo2Se arquivo2 não existir, então arquivo1 é renomeado para arquivo2.
Se o arquivo2 existir, seu conteúdo são substituidos pelo conteúdo do arquivo1.
mv -i arquivo1 arquivo2Como acima porém, desde que a opção "-i" (interactive) é especificada, se o arquivo2 existir, o usuário é solicitado antes que ele seja sobrescrito com o conteúdo do arquivo1.
mv arquivoarquivoarquivo3 dir1Os arquivo1, arquivo2, arquivo3 são movidos para o diretóriodir1 terá que existir ou mv exibirá um erro.
mv dir1 dir2Se dir2 não existir, então dir1 é renomeado para dir2. Se dir2 existir, o diretório dir1 é criado dentro do diretóriio dir2.

rm

O comando rm deleta (remove) arquivos e diretórios.

[alex@linux]$ rm arquivo

Ele também pode ser utilizado para deletar diretórios:

[me@linuxbox me]$ rm -r diretorio

Exemplos de rm e suas opções incluem:
Exemplos de comando rm
ComandoResultado
rm arquivo1 arquivo2Deleta arquivo1 e arquivo2.
rm -i arquivo1 arquivo2Como acima porém, desde que a opção "-i" (interactive) é especificado, o usuário é solicitado antes que cada arquivo seja deletado.
rm -r dir1 dir2Diretórios dir1 e dir2 são deletados junto com todo seu conteúdo.

Tenha cuidado com rm!

Linux não possui um comando undelete (refazer). Uma vez que você tenha apagado um arquivo com rm, ele foi excluído permanentemente. Você pode infligir danos terríveis ao seu sistema com rm se você não for cuidadoso, especialmente com o caractere coringa * (wildcards).
Antes de usar rm com wildcards, tente fazer este truque útil: execute anteriormente o comando ls em vez de rm. Ao fazer isso, você pode ver o efeito de seus wildcards antes de apagar os arquivos. Depois de ter testado o seu comando com ls, lembre-se do comando com a tecla de seta para cima e, em seguida, substituir o comando ls por rm.

mkdir

O comando mkdir é utilizado para criar diretórios. Para utilizá-lo, simplesmente digite:

[alex@linux]$ mkdir diretorio_nome

Nenhum comentário:

Postar um comentário