ls 출력이 stdout 및 화면과 다릅니다.

ls 출력이 stdout 및 화면과 다릅니다.

lsvs의 다양한 출력을 살펴보세요 .ls -1

$ ls
 filea1.txt   fileb.txt    listB1.xml   listC.xml
 filea.txt    listA1.xml   listB.xml   'name with spaces 2.txt'
 fileb1.txt   listA.xml    listC1.xml  'name with spaces.txt'

$ ls -1
filea1.txt
filea.txt
fileb1.txt
fileb.txt
listA1.xml
listA.xml
listB1.xml
listB.xml
listC1.xml
listC.xml
'name with spaces 2.txt'
'name with spaces.txt'

나는 괜찮습니다. 출력을 파일로 리디렉션하면 상황이 달라집니다. 파일이 다를줄 알았는데 똑같네요.

$ ls -1>/tmp/ls-1.out
$ ls >/tmp/ls.out

$ cat /tmp/ls-1.out
filea1.txt
filea.txt
fileb1.txt
fileb.txt
listA1.xml
listA.xml
listB1.xml
listB.xml
listC1.xml
listC.xml
name with spaces 2.txt
name with spaces.txt

$ cat /tmp/ls.out
filea1.txt
filea.txt
fileb1.txt
fileb.txt
listA1.xml
listA.xml
listB1.xml
listB.xml
listC1.xml
listC.xml
name with spaces 2.txt
name with spaces.txt

파일에 대한 리디렉션이 없는 경우와 같이 후자가 출력 열이 하나이고 여러 열이 아닌 이유는 무엇입니까?

답변1

-1ls출력이 리디렉션되면 기본적으로 활성화됩니다.

엄밀히 말하면 기본 출력 형식은 다음과 같습니다 -1.POSIX에 지정된 대로:

기본 형식은 터미널이나 또는 옵션 중 하나가 -C지정된 경우를 제외하고 표준 출력에 한 줄에 하나의 항목을 나열하는 것입니다. 터미널로 출력하는 경우 형식은 구현에 따라 정의됩니다.-m-x

명시적으로 지정하여 열 형식 출력을 파일에 강제로 적용할 수 있습니다 -C.

ls -C > /tmp/ls-C.out

관련 정보