Só estou curioso para saber se existe um termo de computador padrão que englobe tudo em um diretório, em vez de sempre ter que mencionar "arquivos" e "(sub)diretórios/pastas" separadamente. Então você poderia dizer, percorra todos os term
s em dir_1
.
E só para esclarecer, estou procurando um termo singular, como na minha frase de exemplo.
A documentação do POSIX
readdir
usa a palavra entrada :Arquivo. Pelo menos em sistemas compatíveis com POSIX.
( fonte )
As pessoas que dizem "arquivos" quando querem dizer apenas "arquivos normais" não são realmente compatíveis com POSIX. :)
Você pode aprender o que é POSIX respondendo a esta pergunta . Vários sistemas operacionais são compatíveis com POSIX (total ou principalmente) ou não. Sem entrar em detalhes, esta resposta se aplica a sistemas Unix e semelhantes a Unix (incluindo macOS, Linux, BSD), mas não à família Windows em geral.
Boa pergunta.
Eu uso "conteúdo" como um termo que engloba arquivos e subpastas.
Por exemplo: "Precisamos copiar todo o conteúdo desse diretório."
Existem boas respostas que propõem arquivos e entradas . (Vá lê-los se não entender por que essas palavras se encaixam e lembre-se de que no POSIX "arquivo" inclui todos os tipos de inode (incluindo diretório), não apenas arquivos comuns). As entradas de diretório (nomes de arquivos) são referências a arquivos / inodes.
Um arquivo pode ter vários nomes em diretórios diferentes (contagem de links > 1). O arquivo data/inode real não é armazenado no diretório que contém um nome de arquivo para ele.
Mas humanos sãos não têm problemas em dizer coisas como "ler um arquivo que está em algum diretório". Seria desnecessariamente pedante incomodar-se sempre em fazer a distinção entre um arquivo (inode + dados) e o(s) nome(s) de arquivo/entradas de diretório que se referem a ele.
Observe também que as entradas de diretório em sistemas de arquivos modernos geralmente também armazenam um campo "tipo", para que programas como
find
não precisem destat(2)
cada arquivo para verificar predicados comofind -type f
(arquivo regular) versus link simbólico ou algo assim. Ou para encontrar entradas que são diretórios ao recursivamente. Consulte Verificando se um diretório. entrada retornada por readdir é um diretório, link ou arquivo. dent->d_type não está mostrando o tipo no Stack Overflow.Um "caminho" como
foo/bar
ou/a/b/foo/bar
é uma string que termina com um nome de arquivo, mas pode usar diretórios para se referir a um nome de arquivo que não está no diretório atual.foo
é um caminho simples e também um nome de arquivo. Masfoo/bar
é o nome de um arquivo e também um caminho. Mas você poderia argumentar que a semântica não é "um nome de arquivo". Um caminho ou nome de caminho é algo que você pode passar para uma chamada de sistema como POSIXopen(2)
ouchdir(2)
Win32OpenFile()
Sua escolha de terminologia ( arquivo vs. nome de arquivo vs. entrada de diretório ) provavelmente dependerá do contexto e do que você está fazendo. por exemplo, ler o conteúdo ou os metadados do inode envolve o arquivo real.
Mas apenas combinar uma expressão glob com o nome não envolve o arquivo, apenas a entrada do nome do arquivo / diretório.
A entrada de diretório é mais apropriada ao fazer um loop em uma função como
readdir(3)
, ou por exemplo "useln
para criar uma nova entrada de diretório referente a este arquivo". Ao lidar com hardlinks, o termo "entrada de diretório" é utilmente distinto de arquivo, mais do que "nome de arquivo".Mas "nome" também funciona. por exemplo, "um arquivo com 2 nomes".
Mais frequentemente, você escreveria um script de shell usando nomes de variáveis como
c_files=( *.c )
. Orfn
(para filename) também é um bom nome de variável de uso local.Usar
entries=( *.c )
seria estranho. "entradas" só parece certo ao falar sobre o processo de loop sobre elas para obter nomes de arquivos, não para o conjunto resultante de nomes de arquivos que correspondem a algum filtro.Por que não aumentar o nível de abstração em vez de usar apenas "termos de computador":
Avance para uma formulação mais geral...
Um sistema de arquivos maduro armazena arquivos
content
.Ele permite 'arquivos' e 'pastas' como conteúdo básico.
Na maioria das vezes, uma 'pasta' pode armazenar subníveis de conteúdo...
Dependendo da escolha do sistema de arquivos, pode haver outros tipos de conteúdo.
Eu gosto do termo árvore e, de fato, no Linux existe um comando chamado
tree
que lista tudo no diretório atual e todos os diretórios abaixo junto com seus arquivos e subdiretórios.Aqui está um exemplo para instalar e usar o
tree
comando. Um exemplo do link:Embora as capturas de tela de terminais sejam normalmente desaprovadas, porque copiar e colar texto puro é favorecido, acho que a transgressão neste caso provavelmente será perdoada pela maioria dos leitores.