Desktop 디렉토리에 “ls”를 입력 할 때 왜 여분의 공간이 있습니까? file3 …에… ~/Documents$ ls file1 file2

호기심 때문에 lsDesktop 디렉토리에 입력 할 때 추가 공간이 필요한지 궁금합니다 . 비교…

~/Desktop$ ls
 file1 file2 file3

…에…

~/Documents$ ls
file1 file2 file3

ls바탕 화면에 입력 하면 줄의 시작 부분에 파일 이름의 일부가 아닌 추가 공간이 생깁니다. 줄의 시작 부분 에이 여분의 공간이있는 다른 예제 위치를 찾을 수 없습니다. 다른 사람이 이것을 얻습니까? 이유가 있습니까?

NB : Ubuntu Bionic Beaver LTS 릴리스와 함께 제공되는 기본 터미널을 사용하고 있습니다.



답변

추가 공간은 디렉토리에 파일 이름이 필요할 때 나타납니다 '(예 : 공백이나 다른 특수 문자가있는 파일 이름).

~/mytmp$ ls
 a           'file(abc)'         proyecto3.csv   test         Test.sh
 b           'file(ab,c?).mp4'   rootfile        Test1.txt    Test.zip
 F26         'file(abc?).mp4'    scr             Test2.test   vowels
 Feb          guess              script          Test2.txt
'Feb 26 xx'   hw                 something       test.rar

‘이상한’파일을 제거한 후 다음을 얻습니다.

~/mytmp$ ls
a    guess  proyecto3.csv  script     test        Test2.txt   Test.sh
b    hw     rootfile       something  Test1.txt   test.rar    Test.zip
F26  loop   scr            speak      Test2.test  testscript  vowels

답변

화면에 정확하게 표시 file1 file2 file3되지 않는 것이 확실 합니다. 쉽게 관련 될 수있는 소중한 정보 (실제 파일 이름)를 생략했습니다.

내 가정은 공백이나 다른 특수 문자가 포함 된 파일 이름이 있다고 가정합니다.

최신 버전의 coreutils ls인용 파일 이름은 일반적으로 작은 따옴표로 묶습니다. 또한 인용 부호가 필요한 파일이 하나 이상 있으면 다른 모든 파일 이름 앞에 공백을 추가하여 서로 아래에있을 때 “정말”정렬됩니다. 즉, 작은 따옴표 (아포스트로피)는 정렬을 위해 무시됩니다.

참조 --quoting-style-N매뉴얼 페이지 ls좀 더 자세한 내용은, 그것의 “파일 이름 포맷”섹션 정보 더 자세한 내용을. 예를 들어에 대한 별칭 ls을 고려할 수 있습니다 ls -N.