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
$