Esta não é uma pergunta diretamente relacionada a qualquer software, mas sim uma pergunta sobre terminologia e definição de profundidade da árvore de diretórios.
Quando vejo como find . -maxdepth 0
funciona, parece que a única coisa na profundidade 0 é .
. E se você fizer find . -maxdepth 1
isso encontra todos os diretórios e arquivos que residem no diretório .
.
Isso me parece contra-intuitivo. Eu pensaria que qualquer diretório ou arquivo vivendo na raiz de um determinado caminho seria considerado na profundidade mais baixa da árvore, ou profundidade = 0. Mas isso não parece ser no caso do find
comando.
Pegue o seguinte tipo de estrutura de diretório:
/
/fileA.txt
/home
/home/fileB.txt
/home/user
/home/user/fileC.txt
/home/user/morefiles
/home/user/morefiles/fileD.txt
Com relação à profundidade do diretório/árvore, qual é a profundidade de cada arquivo em relação ao diretório raiz /
? Está fileA.txt
na profundidade 0 ou 1? E o /home
diretório? Está fileC.txt
na profundidade 2 ou 3? etc
Suponho que a pergunta possa ser simplificada para "Os arquivos e pastas estão localizados /
(como /fileA.txt
) na profundidade 0 ou na profundidade 1?" E há uma explicação fácil de entender de por que é definido dessa maneira?
A partir da página de manual de
find
,maxdepth
é definido da seguinte forma.Portanto, um arquivo ou pasta que está em um diretório inicial está na profundidade 1. NO seu caso particular
fileA.txt
está na profundidade 1. Oseu
/home/user/fileC.txt
está na profundidade 3, assim como/home
o primeiro nível,/home/user
é o segundo nível e finalmente/home/user/fileC.txt
está no terceiro nível do hierarquia.Quanto à sua pergunta Por que é definido desta forma? , para mim faz sentido ter todos os arquivos e pastas no nível 1 em relação ao início de sua pesquisa e o próprio ponto de partida no nível 0.
Em TI muitas vezes você começa a contar em 0 (zero), por exemplo, é muito comum que o primeiro elemento em uma matriz é referenciado por 0 (zero).
No argumento posicional refere-se
shell
a$0
chamar shell ou scriptname.