디렉터리에 있는 파일의 "디렉터리 순서"는 무엇입니까("ls -U"에서 사용)?

디렉터리에 있는 파일의 "디렉터리 순서"는 무엇입니까("ls -U"에서 사용)?

ls 매뉴얼 페이지에 따르면 ls -U이는 다음을 의미합니다.

정렬이 없습니다. 항목은 디렉토리 순서로 나열됩니다.

"디렉토리 순서"는 무엇을 의미합니까? 어떻게 결정되나요?

다음 테스트(ext3 파일 시스템에서 수행됨)는 이것이 파일이 생성되는 순서가 아님을 보여줍니다.

root@sv1010vm0007:/tmp# mkdir test
root@sv1010vm0007:/tmp# touch test/2
root@sv1010vm0007:/tmp# touch test/1
root@sv1010vm0007:/tmp# touch test/3
root@sv1010vm0007:/tmp# ls -U test
2  3  1

답변1

파일 시스템에 따라 다릅니다. 일부 파일 시스템(그 중 ext3)의 경우 디렉터리는 실제로 잘 알려진 형식의 파일이며 해당 권한이나 모드에 "d" 비트가 설정되어 있습니다. 이 경우 파일 이름 길이의 생성 및 삭제 이력이 중요할 수 있습니다. 커널은 새 파일의 이름을 저장할 만큼 충분한 공간이 있는 디렉토리 파일의 첫 번째 항목을 채웁니다. 바라보다http://e2fsprogs.sourceforge.net/ext2intro.html자세한 내용은 "물리적 설명" 섹션을 참조하세요.

Reiserfs와 같은 일부 다른 파일 시스템의 경우 디렉토리는 실제로B+ 트리의 일부 항목이는 파일 시스템에서는 볼 수 없으므로 lsReiserfs 파일 시스템의 일반 디렉토리는 어휘 순서로 정렬됩니다.

답변2

사실 특별히 기대할 수 있는 순서는 없습니다. 원하는 방식으로 항목을 정렬하는 것은 운영 체제와 파일 시스템에 달려 있습니다. 이 옵션의 한 가지 목표는 가능한 한 빨리 목록을 얻는 것입니다. 이는 매우 큰 디렉토리의 경우 중요한 요소가 될 수 있습니다.

답변3

이는 항목이 파일 시스템 내부에 저장되는 순서입니다. 이는 파일 시스템에 따라 다릅니다. 예를 들어, 앙상블은 일종의 균형 트리에 저장될 수 있습니다.레드 블랙 트리. 항목 수가 더 적은 디렉터리에 대한 추가 최적화가 있거나 추가 및 삭제를 효율적으로 처리할 수 있습니다.

답변4

디렉토리는 실제 파일의 메타데이터를 나열하는 또 다른 파일입니다. "ls -U"는 디렉토리 파일의 모든 내용을 동일한 순서로 나열합니다.

순서는 운영 체제 및 파일 시스템 구현에 따라 결정됩니다.

관련 정보