Manipulação de Arquivos

Conceitos sobre arquivos e diretórios no GNU/Linux

Nomes de arquivos:

  • Podem ter até 255 caracteres, sendo a rigor, a / o único proibido;
  • Desta forma podemos ter um arquivo de nome ??[]{*}.zip (não é recomendável).

Extensões em nomes de arquivos:

  • São de uso opcional. O tipo de um arquivo é determinado pelo seu conteúdo e não pela sua extensão;
    • Por exemplo, no GNU/Linux, um executável (como um programa) precisa ter apenas permissão de execução, e não uma extensão .exe.

Arquivos ocultos e especiais:

  • No GNU/Linux, para ocultar um arquivo ou diretório, basta que seu nome comece com .;
  • Também existem diversos arquivos especiais, sendo seu uso relacionado a acesso a dispositivos, comunicação entre programas, comunicação via rede etc;
    • Normalmente ficam armazenados no diretório /dev.

Permissões de acesso a arquivos e diretórios

  • Cada arquivo ou diretório possui permissões de leitura, escrita, e execução;
  • Estas permissões podem ser aplicadas ao
    • Proprietário do arquivo;
    • Grupo do qual o proprietário faz parte;
    • Outros (nem o proprietário nem seu grupo);
    • Todos os usuários do sistema.

ls : Lista o conteúdo de diretórios

Sintaxe : ls [opções] [arquivos]

Opções (principais):

-a: Mostra todos os arquivo, inclusive os ocultos.
-l: Mostra as informações sobre os arquivos no formato longo.
-R: Mostra os subdiretórios recursivamente.
-h: Mostra o tamanho dos arquivo em um formato facilmente legível.

Exemplos:

user@debian:~/aula$ ls
prog1.c
teste.doc
tela.jpg
user@debian:~/aula$ ls -l
-rwxr--r-- 1 maria users 2300   Jan 01 2000 prog1.c
-rwxr--r-- 1 maria users 212    May 01 1999 teste.doc
-rwxr--r-- 1 maria users 152312 Dez 11 1998 tela.jpg
user@debian:~/aula$ ls -la
-rwxr--r-- 1 maria users 2300   Jan 01 2000 prog1.c
-rwxr--r-- 1 maria users 212    May 01 1999 teste.doc
-rwxr--r-- 1 maria users 152312 Dez 11 1998 tela.jpg
drwx------ 1 maria users 45     Dez 11 1999 ..
drwx------ 1 maria users 56     Dez 11 1999 .

cd : Muda de diretório

Sintaxe : cd [diretorio]

Exemplos:

user@debian:~/aula$ cd /tmp
user@debian:/tmp$ cd
user@debian:~$ cd aula
user@debian:~/aula$ cd ..

cp : Copia arquivos

Sintaxe : cp [opções] <arquivo-origem> <arquivo-destino>

Opções (principais):

-i: Pergunta antes de sobrescrever arquivos já existentes.
-p: Preserva permissões, proprietários e datas.
-R: Copia recursivamente.

Exemplos:

user@debian:~/aula$ cp prog1.c prog1-backup.c
user@debian:~/aula$ cp *.c /home/aluno/programas
user@debian:~/aula$ cp teste.doc tela.jpg /tmp

rm : Apaga arquivos

Sintaxe : rm [opções] <arquivos>

Opções (principais):

-i: Pergunta antes de apagar.
-f: Apaga sem solicitar nenhuma confirmação.
-R: Apaga recursivamente.

Exemplos:

user@debian:~/aula$ rm prog1.c prog1-backup.c
user@debian:~/aula$ rm -i dodumentos/*
user@debian:~/aula$ rm -rf temp/

mv : Move ou renomeia arquivos

Sintaxes :

mv [opções] <arquivo-antigo> <arquivo-novo>
mv [opções] <arquivo> <diretorio>

Opções (principais):

-i: Pergunta antes de sobrescrever.
-f: Não solicita nenhuma confirmação.

Exemplos:

user@debian:~/aula$ mv prog1.c exercicio.c
user@debian:~/aula$ mv *.c /home/aluno/programas/

Sintaxe : ln [opções] <arquivo-origem> <arquivo-destino>

Opções (principais):

-s: Criar um link simbólico.

Exemplo:

user@debian:~/aula$ ln -s prog1.c /home/aluno/prog1.c

mkdir : Cria diretórios

Sintaxe : mkdir [opções] <diretorio>

Opções (principais):

-p: Cria os diretórios pais.

Exemplos:

user@debian:~/aula$ mkdir teste
user@debian:~/aula$ mkdir -p avo/pai/filho/neto

rmdir : Apaga diretórios vazios

Sintaxe : rmdir <diretorio>

Exemplo:

user@debian:~/aula$ rmdir teste

cat : Exibe o conteúdo de arquivos

Sintaxe : cat [lista de arquivos]

Exemplos:

user@debian:~/aula$ cat config.txt
user@debian:~/aula$ cat arq1.txt arq2.txt arq3.txt > final.txt
user@debian:~/aula$ cat > novoarq.txt
.
.
(digite algo)
.
.
Ctrl+d

head : Mostra o início de um arquivo

Sintaxe : head [opções] [arquivos]

Opções (principais):

-n <num>: Imprime as primeiras num linhas do arquivo.

Exemplos:

user@debian:~/aula$ head prog1.c
user@debian:~/aula$ head -n 5 prog1.c

tail : Mostra o final de um arquivo

Sintaxe : tail [opções] [arquivos]

Opções (principais):

-n <num>: Imprime as ultimas num linhas do arquivo.

Exemplos:

user@debian:~/aula$ tail prog1.c
user@debian:~/aula$ tail -n 12 prog1.c

less : Mostra arquivos de texto no terminal

Sintaxe : less [opções] [arquivos]

Opções (principais):

-e : Sai ao fim do arquivo sem ser necessário digitar q.
-I : Buscas no arquivo não irão diferenciar letras maiúsculas de minúsculas.
-N : Mostra o número das linhas.
-m : mostra a porcentagem do arquivo que já foi visualizado.

Comandos (principais):

/texto : Procura por texto no arquivo.
n : Procura pela próxima ocorrência.
N : Procura pela ocorrência anterior.
Space : Mostra a próxima página.
ou Enter : Mostra a próxima linha.
↑ : Mostra a linha anterior.
q : Sai do less.

Exemplos:

user@debian:~/aula$ less -Nm exercicio.c

more : Mostra arquivos de texto no terminal

Sintaxe : more [opções] [arquivos]

Opções (principais):

+n : mostra o arquivo a partir da linha n.

Comandos (principais):

/texto : Procura por texto no arquivo.
n : Procura pela próxima ocorrência.
Space : Mostra a próxima página.
Enter : Mostra a próxima linha.
q : Sai do less.

Exemplos:

user@debian:~/aula$ more exercicio.c

find : Procura por arquivos

Sintaxe : find [diretório] [opções]

Opções (principais):

-name arquivo : Procura arquivos com o nome arquivo.
-iname arquivo : Procura arquivos com o nome arquivo, não diferencia maiúsculas de minúsculas.
-user username : Procura arquivos cujo proprietário seja username.
-size [+][-]tamanho: Procura arquivos maiores + ou menores - que tamanho.
-ctime [+][-]tempo: Procura arquivos criados a mais + ou menos - de tempo dias.

Exemplos:

user@debian:~/aula$ find / -name *.doc
user@debian:~/aula$ find /home -iname firefox.zip -group users
user@debian:~/aula$ find /home -user aluno -size +10M
user@debian:~/aula$ find /home/aluno -ctime -2

grep : Procura um texto no conteúdo de arquivos.

Sintaxe : grep [opções] <texto-a-buscar> [lista-de-arquivos]

Opções (principais):

-i : Não diferencia maiúsculas de minúsculas.
-l : Imprime somente o nome dos arquivos onde texto-a-buscar foi encontrado.
-v : Inverte o funcionamento, imprimindo as linhas que não possuem texto-a-buscar.
-c : Imprime apenas a quantidade de vezes que texto-a-buscar é encontrado em cada arquivo.
-n : Informa o número da linha em que texto-a-buscar é encontrado em cada arquivo.

Exemplos:

user@debian:~/aula$ grep soma programa.c
user@debian:~/aula$ grep -ni projeto programas/*.c
user@debian:~/aula$ ls -la | grep exercicio

cut : Seleciona caracteres ou campos de arquivos.

Sintaxe : cut [opções] [lista-de-arquivos]

Opções (principais):

-c lista-de-colunas : Seleciona os caracteres pelo número das colunas. O valor de lista-de-colunas é especificado por uma listas de números separados por vírgulas, ou por um intervalo separado por hífen.
-d del : Usa o caracter del como delimitador.
-f lista-de-campos : Seleciona um ou mais campos especificados em lista-de-campos. O valor de lista-de-campos é dado por uma listas de números separados por vírgulas, ou por um intervalo separado por hífen.

Exemplos:

user@debian:~/aula$ ls -la | cut -c16-32
user@debian:~/aula$ cat /etc/passwd | cut -d":" -f1,5 
ensino/semestres/2012.1/mcs/material/manipulacao_arquivos.txt · Última modificação: 2012/05/24 10:05 por 1664038