Respostas:
Um diretório é uma "pasta", um local onde você pode colocar arquivos ou outros diretórios (e arquivos especiais, dispositivos, links simbólicos ...). É um contêiner para objetos do sistema de arquivos.
Um caminho é uma string que especifica como alcançar um objeto do sistema de arquivos (e esse objeto pode ser um arquivo, um diretório, um arquivo especial, ...).
Exemplo: você possui (provavelmente, dependendo do seu sistema) um arquivo no qual as mensagens do sistema são registradas, chamadas syslog
.
Ele normalmente fica em um diretório chamado log
que está contido em um diretório chamado var
que está no diretório raiz do seu sistema de arquivos.
Agora, /var/log/syslog
é um caminho para esse arquivo (um caminho absoluto nesse caso), assim como /var/log
um caminho para o diretório que contém o arquivo. /var/spool/../log/syslog
também é um caminho para o syslog
arquivo (se /var/spool
existir).
Os caminhos também podem ser relativos. Portanto, se o seu diretório atual for /home/user
, o caminho também ../../var/log/syslog
é um caminho relativo para o mesmo arquivo (você sabe que é relativo porque não começa com /
).
E no seu diretório pessoal, se você criar um link simbólico para o /var/log
seguinte:
ln -s /var/log myvarlog
então myvarlog/syslog
é outro caminho para o nosso arquivo.
Diretório é onde você está.
Caminho é como chegar lá.
/var/www/public/site/pages/
pages
é um diretório
/var/www/public/site/pages/
é o caminho para os arquivos nesse diretório. Este é um caminho absoluto.
/var/www/public/site/
é o caminho para esse diretório.
./pages/
pode ser um caminho para os arquivos nesse diretório, se você estiver trabalhando atualmente /var/www/public/site/
. Este é um caminho relativo.
No Linux, a terminologia "diretório" geralmente possui dois significados diferentes:
A. Diretório fechado. Parte de um sistema de arquivos "normal" (pode ser usado para armazenar dados livremente, como tmpfs ou ext4, não usado para expor a funcionalidade do kernel, como procfs ou sysfs), geralmente consiste em ponteiros nomeados exclusivamente para outras partes do sistema de arquivos (outros arquivos ou diretórios).
B. Abra a descrição do arquivo de um diretório. Um objeto do kernel, que é um manipulador para A ou algum tipo de interface para uma funcionalidade do kernel.
A terminologia "Path" é apenas uma string que permite que você se refira a uma instância de A ao construir uma instância de B.