정렬하지 않고 ls를 사용할 때 파일 정렬 방법을 결정하는 것은 무엇입니까?

정렬하지 않고 ls를 사용할 때 파일 정렬 방법을 결정하는 것은 무엇입니까?

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

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

미리 감사드립니다

답변1

에서 man 3 readdir:

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

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

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

관련 정보