디렉토리에서 파일의“디렉토리 순서”는 무엇입니까 (`ls -U`에 의해 사용됨)? 의미하며 어떻게 결정됩니까? 다음 테스트 (ext3 파일

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


답변

파일 시스템에 따라 다릅니다. 일부 파일 시스템 (그들 중 ext3)의 경우, 디렉토리는 실제로는 잘 알려진 형식의 파일이며 권한 또는 모드에서 ‘d’비트가 설정됩니다. 이 경우 파일 이름을 만들고 삭제 한 길이에 대한 기록이 중요 할 수 있습니다. 커널은 디렉토리 파일에서 새 파일의 이름을 담을 공간이 충분한 첫 번째 항목을 채 웁니다. 자세한 내용 은 “물리적 설명”섹션 인 http://e2fsprogs.sourceforge.net/ext2intro.html 을 참조하십시오 .

다른 파일 시스템 중 Reiserfs의 경우 디렉토리는 실제로 파일 시스템에 표시되지 않는 B + 트리의 일부 항목 이므로 lsReiserfs 파일 시스템의 디렉토리 평문 은 어휘 순서입니다.


답변

실제로, 구체적인 순서는 없습니다. 항목을 원하는 방식으로 주문하는 것은 OS 및 파일 시스템 구현에 달려 있습니다. 이 옵션의 한 가지 목표는 가능한 빠른 목록을 얻는 것인데, 이는 매우 큰 디렉토리에서 중요한 요소가 될 수 있습니다.


답변

항목이 파일 시스템에 내부적으로 저장되는 순서입니다. 이것은 파일 시스템마다 다릅니다. 예를 들어, 전체는 Red-Black Tree 와 같은 일종의 균형 잡힌 나무에 저장 될 수 있습니다 . 항목 수가 적은 디렉토리에 대한 추가 최적화가 있거나 추가 및 제거를 효율적으로 처리 할 수 ​​있습니다.


답변

디렉토리는 다른 파일 일 뿐이며 실제 파일의 메타 데이터를 나열합니다. “ls -U”는 디렉토리 파일에서 전체를 동일한 순서로 나열합니다.

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