Manipulação de directorias

Outra forma de voltarmos para a directoria
curso é:
> cd ~/curso
> pwd
> ls -la
Manipulação de directorias





Os dois exemplos são equivalentes
No primeiro exemplo, o comando «cd» sem
argumentos traz-nos para a nossa directoria pessoal
de trabalho (home)
Em seguida, o segundo comando «cd» muda para a
subdirectoria «curso»
No segundo exemplo, foi utilizado o símbolo «~» que
representa a directoria de trabalho (home)
Contudo, ao adicionar-lhe o nome da subdirectoria
«curso», vamos saltar directamente para a directoria
desejada: «~/curso»
1.2.4 – Manipulação de ficheiros
Manipulação de ficheiros


Até ao momento, a directoria «curso» ainda
está vazia
Por esse motivo, vamos começar por copiar
alguns ficheiros para o seu interior:
>
>
>
>
>
cp
cp
cp
cp
ls
/etc/passwd abcd
/etc/services xpto
/proc/cpuinfo qwer
/proc/uptime asdf
-la
Manipulação de ficheiros





Ao fazer isto, acabámos de copiar quatro ficheiros para a
directoria «curso»
Por esse motivo, o comando «ls» que aparece no final, já
deverá listar quatro ficheiros novos: «abcd», «xpto», «qwer» e
«asdf»
O comando «cp», que significa copy, copia um ficheiro de uma
directoria para outra
Também pode ser usado para copiar ficheiros dentro da
mesma directoria, se forem usados nomes diferentes
Por esse motivo, o «cp» pode ser utilizado com 2 nomes: o
nome do ficheiro original e o nome do ficheiro novo
Manipulação de ficheiros


Por outro lado, quando desejamos fazer uma
cópia de um ficheiro localizado numa
determinada directoria, para outra directoria,
mantendo o nome original, basta usar o nome
da directoria de destino
Por exemplo, para copiar um ficheiro para a
directoria actual, podemos usar o símbolo «.»
> cp /usr/bin/cal
> ls -la
Manipulação de ficheiros




Neste exemplo, estamos a copiar o ficheiro «cal»,
localizado na directoria «/usr/bin», para a directoria
actual
Como resultado, é criado um novo ficheiro na
directoria actual, com o mesmo nome que o original:
«cal»
O comando «cp» mantém o «modo» e todas as
permissões dos ficheiros originais
Contudo, os ficheiros copiados deixam de pertencer ao
dono original e passam a pertencer ao utilizador que
mandou executar a cópia
Manipulação de ficheiros

Para mover ou alterar o nome de um ficheiro,
temos o comando «mv», que significa move:
>
>
>
>
>
>
>
mv
mv
mv
ls
mv
ls
ls
cal calendario
asdfg qwert
abcd ..
-l
../abcd aaa
–l ..
-l
Manipulação de ficheiros



Neste exemplo, o primeiro comando altera o
nome do ficheiro «cal» para «calendario» e o
segundo muda o nome do ficheiro «asdfg»
para «qwert»
Contudo, o terceiro comando «mv abcd ..»
move o ficheiro «abcd» para a directoria acima
O comando seguinte «ls -l ..» mostra a
listagem da directoria acima, na qual já se
encontra o ficheiro «abcd» que foi movido no
comando anterior
Manipulação de ficheiros




O comando «mv .. /abcd aaa» volta a mover o ficheiro
«abcd» para a directoria actual mas desta vez o seu
nome é alterado para «aaa»
Finalmente, os comandos «ls -l ..» e «ls -l», servem
para consultar o estado em que ficaram as duas
directorias e verificar se o «mv» funcionou como
previsto
Para além de copiar e mover ficheiros, também
necessitamos muitas vezes de eliminar ficheiros, para
libertar espaço em disco
O comando usado para remover ficheiros é o «rm»
(remove)
Manipulação de ficheiros

Por exemplo, para eliminar o ficheiro
«calendario», basta executar:
> rm calendario


Por norma, o comando «rm» só funciona sobre
ficheiros
Para remover directorias, deve ser utilizada a
opção «-r», que remove árvores de directorias
recursivamente, ou então o comando «rmdir»
(remove directory)
Manipulação de ficheiros

Exemplo:
> rm –r subdir



A opção «-r», que significa recursive, remove toda a
estrutura de ficheiros e subdirectórios debaixo de
«subdir»
Este comando é bastante útil em situações onde
existem estruturas de directórios complicadas que
necessitam de ser eliminadas
Contudo, é necessário ter bastante cuidado antes de o
utilizar, uma vez que os seus efeitos podem ser
devastadores, especialmente quando acontecem erros
de utilização
Manipulação de ficheiros

Por exemplo se cometesse o erro de executar
na raíz (/) o comando:
> rm –r *
 Este comando eliminaria todo o conteúdo das
partições onde o linux está instalado


Felizmente, o «rm» tem a opção «-i»
Quando o «rm» é chamado com esta opção,
pede sempre confirmação antes de apagar
cada ficheiro…
Manipulação de ficheiros





O comando «cp» também possui uma opção «r», que permite
copiar árvores inteiras de subdirectorias, escrevendo um único
comando
O comando «mv» não necessita deste tipo de opções, porque
pode ser aplicado directamente sobre directórios
Quando se move um directório, todos os ficheiros que estão no
seu interior são automaticamente movidos
O comando «ls» também possui uma opção «R» que serve
para listar recursivamente toda uma árvore de subdirectorias
Exemplo:
> ls –lR /usr/local
Manipulação de ficheiros



O comando «ln» (link) é semelhante ao «cp»,
mas em vez de copiar ficheiros, limita-se a criar
ligações, que são geralmente denominadas
links ou atalhos
Os links são ficheiros que apontam para outros
ficheiros
Todos os comandos e pedidos que tentam
aceder ao conteúdo de um link são
automaticamente redireccionados para o
ficheiro por ele referenciado
Manipulação de ficheiros

Por exemplo, para criar um link chamado «serv»,
apontando para o ficheiro «etc/services», podemos
utilizar o seguinte comando:
> ln –s /etc/services serv
> ls –l serv

Depois de o link estar criado, todas as tentativas de
aceder ao conteúdo do ficheiro «serv» são
redireccionadas para o ficheiro «etc/services»
1.2.5 – Visualização de ficheiros
de texto
Visualização de ficheiros de
texto


No campo da visualização de ficheiros, o Linux
oferece-nos os comandos «cat», «more» e uma
variante do «more», chamada «less»
Por exemplo, o comando «cat xpto» mostra o
conteúdo do ficheiro «xpto»:
> cat xpto
1.2.6 – Wild-cards
Wild-cards


No trabalho do dia-a-dia, é muito frequente
sermos confrontados com a necessidade de
realizar a mesma tarefa sobre múltiplos
ficheiros
Para evitar ter de repetir o mesmo comando
muitas vezes, foram criados os wild-cards, que
são caracteres especiais, usados para
referenciar listas de ficheiros com um único
nome
Wild-cards

Os caracteres que funcionam como wild-cards
são os seguintes:
Carácter
*
?
[]
Significado
Qualquer sequência de caracteres
Um único carácter indiferenciado
Uma sequência de um ou mais caracteres
pertencentes ao conjunto dentro de parêntesis
rectos
Wild-cards

Exemplos:
Para obter a lista de todos os ficheiros na directoria
«/bin», cujos nomes começam pela letra «s»,
usamos o wild-card «s*»:
> ls /bin/s*

Wild-cards
Para listar todos os ficheiros da directoria «/etc»
que terminam com a extensão «.conf», basta usar o
wild-card «*.conf»
> ls /etc/*.conf

Wild-cards
De igual forma, para obter a lista de todos os
ficheiros da directoria «/etc» que possuem pelo
menos um «x» no seu nome, usamos «*x*»:
> ls /etc/*x*

Wild-cards
Para listar todos os ficheiros da directoria «/bin»,
cujo segundo carácter do nome é a letra «a»,
usamos o comando «ls /bin/?a*»
 Este comando lista todos os ficheiros que possuem
um carácter indeterminado no início, seguido de
uma letra «a» e de qualquer sequência de
caracteres indiferenciados:
> ls /bin/?a*

Wild-cards
Finalmente, o comando «ls /bin/???» apresenta
todos os ficheiros da directoria «/bin» que possuem
um nome com exactamente três caracteres de
comprimento
> ls /bin/???

Wild-cards



Os wild-cards podem ser usados em
conjugação com qualquer comando que utilize
ficheiros e directorias
Por exemplo, podem ser usados para copiar e
para mover vários ficheiros entre directorias.
Para esse efeito, vamos criar uma nova
subdirectoria e copiar todos os ficheiros na
directoria actual, para dentro da nova
subdirectoria
Wild-cards
>
>
>
>




mkdir subdir
ls -l
cp * subdir
ls –l subdir
A lista de ficheiros abrangida pelo «*» também incluí a
própria directoria de destino «subdir»
Por essa razão, o comando «cp» vai tentar copiar a
directoria para dentro de si própria
Por razões óbvias, isso não é possível e o «cp»
apresenta uma mensagem de erro…
No entanto, os outros ficheiros são todos copiados de
forma correcta
Wild-cards


Os wild-cards são bastante úteis para eliminar
ficheiros, pois o comando «rmdir» só funciona
sobre directorias vazias
Por exemplo, se tentarmos remover a directoria
«subdir» que contém vários ficheiros no seu
interior, obtemos uma mensagem de erro:
> rmdir subdir
rmdir: subdir: Directory not empty
Wild-cards

Por esse motivo, é necessário começar por remover
todos os ficheiros dentro da subdirectoria «subdir» e
só depois podemos usar o «rmdir»:
> rm subdir/*
> rmdir subdir


Neste exemplo, foi utilizado o wild-card «*» para
referenciar todos os ficheiros contidos no interior da
directoria «subdir»
Neste exemplo, também poderia ter sido usada a
opção «-r» do comando «rm» para remover, de uma
só vez, a directoria e os ficheiros contidos no seu
interior.
Download

Manipulação de directorias