정렬 없이 ls를 사용할 때 파일 순서를 결정하는 방법은 무엇입니까?

정렬 없이 ls를 사용할 때 파일 순서를 결정하는 방법은 무엇입니까?

lswith 플래그를 사용할 때의 순서 -U는 C에서 dirent.h 라이브러리를 사용하고 루프에 파일 이름을 표시할 때 얻는 순서와 동일합니다. 구조체 d_off의 멤버를 표시하면 dirent숫자가 오름차순으로 표시됩니다.

d_off파일 순서의 이유가 무엇입니까 ? 그렇다면 정확히 무엇입니까? 파일 오프셋으로 설명되는 것을 보았지만 그것이 무엇을 의미하는지 잘 모르겠습니다.

미리 감사드립니다

답변1

에서 man 3 readdir:

버리다
   d_off에 반환된 값은 디렉터리 스트림의 현재 위치에서 Telldir(3)을 호출하여 반환되는 값과 동일합니다. 유형과 이름에도 불구하고 d_off 필드는 최신 파일 시스템에서 어떤 종류의 디렉터리 오프셋도 거의 사용하지 않습니다. 애플리케이션은 이 필드를 불투명 값으로 처리해야 하며 해당 내용에 대해 어떠한 가정도 하지 않아야 합니다. Telldir(3)도 참조하세요.

즉, d_off주문같은거야; 해당 디렉토리에 대한 파일 시스템이 반환한 디렉토리 항목의 번호입니다.

따라서 순서는 파일 시스템 자체에 의해 정의됩니다. 이는 단순할 수도 있고(FAT12 디렉터리에서) 매우 복잡할 수도 있습니다(예: 일부 복잡한 파일 시스템에 대한 overlayFS).

관련 정보