GNU tar의 맨페이지에는 다음과 같이 나와 있습니다.
기본값은 --sort=none이며 운영 체제에서 반환한 순서대로 아카이브 멤버를 저장합니다.
그러면 운영 체제는 무엇을 반환합니까? 특히 다음과 같은 경우에 관심이 있습니다.보장하다tar 항목을 명령줄 인수로 전달할 때
tar -cf file.tar a b c
a
, b
및 의 순서 c
가 유지됩니다.
답변1
지정된 정렬 순서--sort
오직명령줄에 지정된 파일 및 디렉터리 하위 디렉터리의 순서에 영향을 줍니다. 명령줄에 지정된 경로의 순서에는 영향을 주지 않습니다.
귀하의 경우에는 명령
tar -cf file.tar a b c
지정된 순서에 관계없이 파일이 a
먼저 아카이브된 b
다음 아카이브됩니다. 이들 중 하나가 디렉토리인 경우 를 사용하면 해당 디렉토리에서 파일 및 하위 디렉토리가 추가되는 순서에 영향을 주지만 , 및 의 순서에는 영향을 주지 않습니다.c
--sort
--sort
a
b
c
운영 체제는 사용 시 나타나는 순서와 동일한 순서로 항목을 반환합니다 ls -f
. 순서는 디렉토리 노드가 항목을 저장하는 순서이며 파일이 추가되고 제거되는 순서(파일 시스템 구현에 따라 다름)와 같은 여러 요인에 따라 달라질 수 있습니다.