O que determina como os arquivos são ordenados ao usar ls sem classificação?

O que determina como os arquivos são ordenados ao usar ls sem classificação?

A ordem ao usar lswith -Uflag é a mesma ordem que obtenho ao usar a biblioteca dirent.h em C e exibir nomes de arquivos em um loop. Quando exibo d_offo membro da direntestrutura, os números parecem estar em ordem crescente.

Esse é d_offo motivo da ordem dos arquivos e, em caso afirmativo, qual é exatamente? Eu vi isso sendo descrito como deslocamento de arquivo, mas não tenho certeza do que isso significa.

desde já, obrigado

Responder1

De man 3 readdir:

d_desligado
   O valor retornado em d_off é o mesmo que seria retornado chamando Telldir(3) na posição atual no fluxo do diretório. Esteja ciente de que, apesar de seu tipo e nome, o campo d_off raramente é qualquer tipo de deslocamento de diretório em sistemas de arquivos modernos. Os aplicativos devem tratar esse campo como um valor opaco, sem fazer suposições sobre seu conteúdo; veja também Telldir(3).

Em outras palavras, d_offe a ordenaçãosão a mesma coisa; é o número da entrada do diretório retornado pelo sistema de arquivos desse diretório.

A ordem é, portanto, definida pelo próprio sistema de arquivos - e isso pode ser simples (digamos, em um diretório FAT12) ou muito complexo (digamos, um overlayFS sobre algum sistema de arquivos complexo).

informação relacionada