Manipulação de arquivos e diretórios
A primeira coisa que sempre vem em mente no uso de um sistema operacional é como lidar com os arquivos dentro dele. Nesta seção eu irei mostrar alguns comandos básicos para trabalhar com os arquivos. Segue abaixo uma tabela com os comandos que serão explicados a seguir.
Comandos para manipulação de arquivos e diretórios |
|
pwd |
Informa o nome do diretório corrente |
cd |
Navegando entre diretórios |
ls |
Listar arquivos |
cp |
Cópia de arquivos |
mv |
Move arquivos e diretórios |
ln |
Estabelece ligações entre arquivos |
mkdir |
Cria um diretório |
rmdir |
Remove um diretório vazio |
rm |
Remove arquivos e diretórios |
file |
Indica o tipo de arquivo |
pwd – Informa nome do diretório corrente
Sintaxe: pwd
Exemplo:
debian:/# pwd
/usr/local/bin
cd – Navegando entre diretórios
Sintaxe: cd [nome-do-diretório]
Este comando mudará o diretório atual onde o usuário está. Podemos também fazer algumas simplificações no nome-do-diretório no Linux para facilitar.
As simplificações citadas são:
Abreviação |
Significado |
. (ponto) |
Diretório atual |
.. (dois pontos) |
Diretório anterior |
~ (til) |
Diretório home do usuário |
/ (barra) |
Diretório Raiz |
- (hifem) |
Ultimo diretório |
Exemplo:
debian:/# cd /usr/src #vai para o diretório /usr/bin
debian:/# cd ~ #vai para o diretório do usuario
debian:/# cd - #volta para o diretorio /usr/Bin
ls – Lista arquivos
Sintaxe: ls [opções] [arquivo/diretório]
Este comando serve para listar os arquivos do diretório especificado. O diretório corrente é o default, isto é, se o comando for executado sem argumentos, mostrará todos os arquivos existentes no diretório atual. Veja algumas opções:
Opções |
Significados |
-l |
Lista os arquivos em formato detalhado |
-a |
Lista todos os arquivos, inclusive os começados por ponto (arquivos ocultos) |
-r |
Na ordem alfabética reversa |
-h |
Combinado com –l imprime o tamanho de forma mais legível (por exemplo 1K, 234M, 2G, etc.) |
-R |
Lista também os subdiretórios encontrados |
Exemplos:
debian:/usr# ls
bin games include lib local sbin share src
debian:/usr# ls -l
total 23
drwxr-xr-x 2 root root 12432 2009-11-21 22:24 bin
drwxr-xr-x 2 root root 72 2009-11-21 10:58 games
drwxr-xr-x 4 root root 160 2009-11-21 19:58 include
drwxr-xr-x 36 root root 5888 2009-11-21 22:24 lib
drwxrwsr-x 10 root staff 264 2009-11-21 10:57 local
drwxr-xr-x 2 root root 4320 2009-11-21 22:24 sbin
drwxr-xr-x 73 root root 1936 2009-11-21 19:58 share
drwxrwsr-x 2 root src 48 2009-06-15 05:28 src
debian:/usr# ls -lh
total 23K
drwxr-xr-x 2 root root 13K 2009-11-21 22:24 bin
drwxr-xr-x 2 root root 72 2009-11-21 10:58 games
drwxr-xr-x 4 root root 160 2009-11-21 19:58 include
drwxr-xr-x 36 root root 5.8K 2009-11-21 22:24 lib
drwxrwsr-x 10 root staff 264 2009-11-21 10:57 local
drwxr-xr-x 2 root root 4.3K 2009-11-21 22:24 sbin
drwxr-xr-x 73 root root 1.9K 2009-11-21 19:58 share
drwxrwsr-x 2 root src 48 2009-06-15 05:28 src
cp – Cópia de arquivos
Sintaxe: cp [opções] <arq-origem> <arq-destino>
O comando cp copia arquivos e diretórios. como opções dele, podemos ver:
Opções |
Significado |
-i |
Modo interativo |
-v |
Mostra o que está copiando |
-r |
Copia recursivamente (diretórios e subdiretórios) |
Exemplos:
debian:/# cp arq01 /root #copia o arquivo arq01 para o diretório root
debian:/# cp arq01 /root –i #copia o arquivo arq01 no modo interativo
cp: overwrite `/root/arq01'? y
mv – Move arquivos e diretórios
Sintaxe: mv [opções] <arq-origem> <arq-destino>
Este comando normalmente é usado para renomear arquivos, mas nos exemplos a seguir, veremos que ele também, por vezes, copia o arquivo <arq-origem> para <arq-destino> e em seguida apaga <arq-origem>. Suas opções e exemplos são semelhantes ao do comando cp.
Para renomear um arquivo usando o mv basta fazer como abaixo:
debian:~# ls #Lista os arquivos do diretório corrente arq01
debian:~# mv arq01 arq55 #Usando o mv para renomear o arquivo
debian:~# ls #Listando novamente os arquivos do diretório corrente arq55
ln – Estabelece ligações entre arquivos
Sintaxe: ln [-s] <arq-origem> <ligação>
Este comando é usado para criar ligações (links). Existem dois tipos de ligações:
- Hard Link: Neste caso, o arquivo ligação, tem o mesmo inode do arq-origem, ou seja, os dois compartilham dados.
- Symbolic Link: Neste caso, o arquivo ligação tem inode diferente do arq-origem, e seu conteúdo é somente o caminho do arq-origem.
Exemplos:
Suponha que temos um arquivo com a folha de paramento de uma empresa chamado folha, e este arquivo pertence ao grupo folha que tem todos os direitos sobre ele. Se quiséssemos que o pessoal da contabilidade tivesse acesso somente leitura a este arquivo, criaria um hard link e alteraria a permissão do grupo veja como estabeleço o link:
debian:~# ls -li
total 0
954 -rw-r--r-- 1 root root 0 2009-11-21 23:18 folha
debian:~# ln folha folha_contabilidade
debian:~# ls -li
total 0
954 -rw-r--r-- 2 root root 0 2009-11-21 23:18 folha
954 -rw-r--r-- 2 root root 0 2009-11-21 23:18 folha_contabilidade
O arquivo folha já existia e liguei ao arquivo folha_contabilidade por meio do comando ln. Note que na saída do comando ls –li o inode dos arquivos são iguais (954 no meu caso), o que significa que o mesmo arquivo tem agora dois.
Para diferenciar vamos repetir a mesma operação, porem criando um link simbólico usando a opção –s:
debian:~# ls -li
total 0
954 -rw-r--r-- 1 root root 0 2009-11-21 23:18 folha
debian:~# ln -s folha folha_contabilidade
debian:~# ls -li
total 0
954 -rw-r--r-- 1 root root 0 2009-11-21 23:18 folha
197 lrwxrwxrwx 1 root root 5 2009-11-21 23:35 folha_contabilidade -> folha
Note que agora os inodes são diferentes, o arquivo folha continua com seu inode original (954) ao passo que folha_contabilidade passou para 197 e que no final da linha do arquivo folha_contabilidade tem uma seta apontando para folha. Um fato interessante é que o arquivo folha_contabilidade tem apenas 5 bytes de tamanho, isso porque ele armazena o caminho do arquivo de ligação que no caso é folha. Como os dois estão no mesmo diretório ele armazena o caminho relativo.
mkdir – Cria um Diretório
Sintaxe: mkdir <nome-do-diretório>
Deve-se observar que este comando usa todas as simplificações do comando cd.
Exemplo:
debian:~# mkdir folha
rmdir – Remove Diretórios Vazios
Sintaxe: rmdir <nome-do-diretorio>
Remove um diretório somente se ele estiver vazio. Este comando assim como o mkdir usa convenções de endereçamento assim como o comando cd.
Exemplo:
debian:~# rmdir folha
rm – Remove Arquivos e Diretórios
Sintaxe: rm [opções] <arquivo/diretório>
Opções |
Significados |
-f |
Ignora arquivos inexistentes e não pede confirmação antes de remover |
-r |
Remove o(s) diretório(s) especificado(s) e seu(s) conteúdo(s), recursivamente. |
-I |
Sempre pede confirmação antes de remover |
Este comando apaga arquivos ou diretórios.
Exemplo:
debian:~# rm folha #apaga o arquivo folha
debian:~# rmdir –rf dir_folha #apaga o diretório folha sem confirmação de exclusão
file – Indicando o Tipo de um Arquivo
Sintaxe: file <arquivo>
Este comando retorna o tipo do arquivo arquivo conforme determinados padrões do sistema operacional.
Exemplos:
debian:~# file folha
folha: ASCII text