"컨테이너 파일"의 가장 기본적인 "깊이"는 무엇입니까?

"컨테이너 파일"의 가장 기본적인 "깊이"는 무엇입니까?

나는 실제로 하나의 파일 또는 둘 이상의 파일을 포함하는 모든 파일을 설명하기 위해 "컨테이너 파일"이라는 용어를 사용합니다. 몇 가지 예는 다음과 같습니다.타르 아카이브또는예배 규칙서.

일부 보관 GUI 소프트웨어를 사용하여 tar 아카이브를 열거나 일부 GUI OS 파일 브라우저를 사용하여 디렉터리를 열었다고 가정해 보겠습니다. 두 경우 모두 실제로 하나의 파일 또는 두 개 이상의 파일이 있습니다.함유된컨테이너 파일에서 내 앞에 나타납니다(첫 번째로 가장 기본적인 깊이 - "더 깊은 깊이"를 고려하지 않음).

일반적으로 Unix 및 Linux 시스템에서 이러한 파일의 깊이는 얼마나 됩니까? 깊이 0인가요, 아니면 깊이 1인가요?

답변1

귀하의 질문에 대답하기 위해 명령에서 깊이 사용법을 인용하겠습니다 find. 플래그를 사용하여 --maxdepth특정 파일을 검색하려는 최대 깊이를 정의할 수 있습니다. 이제 다음 구조의 디렉터리(또는 일반적으로 docker와 연결되어 있지만 단어를 사용하는 컨테이너 파일)에 있는 경우

.
└── dir1
    └── file1

(이것은 tree 명령의 출력입니다.) 실행 find -maxdepth 0하면 .. 대신 실행하면 find -maxdepth 1현재 있는 디렉터리의 실제 콘텐츠(일명 )를 얻게 됩니다 ./dir1. 이를 계속하려면 maxlength 2를 사용한 검색도 물론 출력되지만 ./dir1/file1이는 이미 분명해야 합니다.

요약하자면, 현재 위치한 디렉터리에 포함된 파일은 깊이 0이 아닌 1에 있습니다.

답변2

이 질문은 용어에 대해 묻는 것 같습니다. 조심해야 하는 것은 맞습니다. "깊이"라는 용어는 까다로울 수 있으며 나는 항상 그것을 사용하기 전에 내 자신의 논리를 확인하고 있습니다.

대답이 1인 이유(그리고 1인 이유)를 이해하려면 0에서 색인을 생성하거나 1에서 색인을 생성하는 결정이 임의적이지 않다는 점을 이해해야 합니다. 실제로는 완전히 다른 두 가지를 설명하고 있습니다. 설명하려면 몇 가지 색상(빨간색, 파란색, 보라색)이 포함된 목록을 생각해 보세요. 우리는 이 목록에 대해 두 가지 방법으로 이야기할 수 있습니다.

  1. 목록에서:1st는 빨간색이고,2nd는 파란색이고,rd는 보라색이에요. 1부터 명확하게 인덱싱
  2. 보라색은2목록의 시작 부분에서 멀리 있는 파란색은1목록의 시작 부분에서 멀어지면 빨간색이 목록의 시작 부분입니다.0. 0부터 인덱싱합니다.

컴퓨터 과학에서는 오프셋(0부터 인덱싱)을 사용하는 것이 많은 수학을 프로그래밍하기 더 쉽게 만들어주기 때문에 선호됩니다. 그러나 우리가 단지 "0부터 인덱싱"하는 것이 아니라 뭔가 다른 것을 설명하고 있다는 것을 이해하는 것이 중요합니다.

0부터 인덱싱하는 것은 (가상적으로)항상 오프셋, 팬텀 제로가 있더라도.


용어를 사용하면 findfind는 현재 디렉터리의 오프셋으로 0부터 인덱싱됩니다. 따라서 -maxdepth 1현재 디렉터리에서 시작하여 1개 레이어를 탐색하는 것을 의미합니다. 마찬가지로 현재 디렉터리에서 시작하고 아무것도 확장하지 않기 때문 find . -maxdepth 0입니다 ..

이 토론까지 당신은 깊이 0을 찾는 것을 고려조차 하지 않았을 것입니다. 0은 환상입니다(실제로 유용하지 않습니다).


이어서 컨테이너 용어에서 깊이 0은 zip 파일이 0개 확장된 것을 의미해야 합니다. 컨테이너가 전혀 없다는 의미입니다. 단일 레이어 깊이(다른 파일은 포함하지만 다른 zip은 포함하지 않음)는 컨테이너 외부에서 시작하고 파일을 추출하려면 하나의 컨테이너를 확장해야 하기 때문에 항상 깊이 1입니다.

관련 정보