Unix / Linux - Gerenciamento de diretório

Neste capítulo, discutiremos em detalhes sobre o gerenciamento de diretório no Unix.

Um diretório é um arquivo cujo trabalho individual é armazenar os nomes dos arquivos e as informações relacionadas. Todos os arquivos, sejam comuns, especiais ou de diretório, estão contidos em diretórios.

O Unix usa uma estrutura hierárquica para organizar arquivos e diretórios. Essa estrutura costuma ser chamada de árvore de diretórios. A árvore tem um único nó raiz, o caractere de barra (/), e todos os outros diretórios estão contidos abaixo dele.

Home Directory

O diretório no qual você se encontra ao fazer login pela primeira vez é chamado de diretório inicial.

Você fará grande parte do seu trabalho no diretório inicial e nos subdiretórios que criará para organizar seus arquivos.

Você pode acessar seu diretório inicial a qualquer momento usando o seguinte comando -

$cd ~
$

Aqui ~indica o diretório inicial. Suponha que você precise ir ao diretório inicial de qualquer outro usuário, use o seguinte comando -

$cd ~username
$

Para ir para o seu último diretório, você pode usar o seguinte comando -

$cd -
$

Nomes de caminho absolutos / relativos

Os diretórios são organizados em uma hierarquia com a raiz (/) no topo. A posição de qualquer arquivo na hierarquia é descrita por seu nome de caminho.

Os elementos de um nome de caminho são separados por um /. Um nome de caminho é absoluto, se for descrito em relação ao root, portanto, nomes de caminho absolutos sempre começam com /.

A seguir estão alguns exemplos de nomes de arquivos absolutos.

/etc/passwd
/users/sjones/chem/notes
/dev/rdsk/Os3

Um nome de caminho também pode ser relativo ao seu diretório de trabalho atual. Os nomes de caminho relativos nunca começam com /. Em relação ao diretório inicial do usuário amrood, alguns nomes de caminho podem ter a seguinte aparência -

chem/notes
personal/res

Para determinar onde você está dentro da hierarquia do sistema de arquivos a qualquer momento, digite o comando pwd para imprimir o diretório de trabalho atual -

$pwd
/user0/home/amrood

$

Listagem de diretórios

Para listar os arquivos em um diretório, você pode usar a seguinte sintaxe -

$ls dirname

A seguir está o exemplo para listar todos os arquivos contidos em /usr/local diretório -

$ls /usr/local

X11       bin          gimp       jikes       sbin
ace       doc          include    lib         share
atalk     etc          info       man         ami

Criação de diretórios

Agora vamos entender como criar diretórios. Os diretórios são criados pelo seguinte comando -

$mkdir dirname

Aqui, diretório é o caminho absoluto ou relativo do diretório que você deseja criar. Por exemplo, o comando -

$mkdir mydir
$

Cria o diretório mydirno diretório atual. Aqui está outro exemplo -

$mkdir /tmp/test-dir
$

Este comando cria o diretório test-dir no /tmpdiretório. omkdir comando não produz saída se ele cria com sucesso o diretório solicitado.

Se você fornecer mais de um diretório na linha de comando, mkdircria cada um dos diretórios. Por exemplo, -

$mkdir docs pub
$

Cria os diretórios docs e pub no diretório atual.

Criação de diretórios pais

Agora entenderemos como criar diretórios pais. Às vezes, quando você deseja criar um diretório, seu diretório ou diretórios pai podem não existir. Nesse caso,mkdir emite uma mensagem de erro da seguinte forma -

$mkdir /tmp/amrood/test
mkdir: Failed to make directory "/tmp/amrood/test"; 
No such file or directory
$

Nesses casos, você pode especificar o -p opção para o mkdircomando. Ele cria todos os diretórios necessários para você. Por exemplo -

$mkdir -p /tmp/amrood/test
$

O comando acima cria todos os diretórios pais necessários.

Removendo diretórios

Os diretórios podem ser excluídos usando o rmdir comando da seguinte forma -

$rmdir dirname
$

Note - Para remover um diretório, certifique-se de que esteja vazio, o que significa que não deve haver nenhum arquivo ou subdiretório dentro deste diretório.

Você pode remover vários diretórios de uma vez da seguinte maneira -

$rmdir dirname1 dirname2 dirname3
$

O comando acima remove os diretórios dirname1, dirname2 e dirname3, se estiverem vazios. ormdir comando não produz saída se for bem-sucedido.

Alterando Diretórios

Você pode usar o cdcomando para fazer mais do que apenas mudar para um diretório inicial. Você pode usá-lo para mudar para qualquer diretório, especificando um caminho absoluto ou relativo válido. A sintaxe é a seguinte -

$cd dirname
$

Aqui, dirnameé o nome do diretório para o qual você deseja mudar. Por exemplo, o comando -

$cd /usr/local/bin
$

Mudanças no diretório /usr/local/bin. A partir deste diretório, você podecd para o diretório /usr/home/amrood usando o seguinte caminho relativo -

$cd ../../home/amrood
$

Renomeando diretórios

o mv (move)comando também pode ser usado para renomear um diretório. A sintaxe é a seguinte -

$mv olddir newdir
$

Você pode renomear um diretório mydir para yourdir como segue -

$mv mydir yourdir
$

Os diretórios. (ponto) e .. (ponto ponto)

o filename .(ponto) representa o diretório de trabalho atual; e afilename .. (ponto ponto) representa o diretório um nível acima do diretório de trabalho atual, geralmente referido como o diretório pai.

Se inserirmos o comando para mostrar uma lista dos diretórios / arquivos de trabalho atuais e usar o -a option para listar todos os arquivos e o -l option para fornecer a lista longa, receberemos o seguinte resultado.

$ls -la
drwxrwxr-x    4    teacher   class   2048  Jul 16 17.56 .
drwxr-xr-x    60   root              1536  Jul 13 14:18 ..
----------    1    teacher   class   4210  May 1 08:27 .profile
-rwxr-xr-x    1    teacher   class   1948  May 12 13:42 memo
$