OSX의 ls 출력에 공백이 포함된 참조 파일 이름

OSX의 ls 출력에 공백이 포함된 참조 파일 이름

질문

인용된 공백이 포함된 파일 이름을 보고 싶지 않습니다.

OSX에서는 실행할 때 다음이 표시됩니다 ls.

> ls -l
total 0
drwxr-xr-x 2 mafro staff 68 Mar 16 09:02 'dir with spaces'
drwxr-xr-x 2 mafro staff 68 Mar 16 09:02 dir_with_spaces

내 데비안 상자에는 다음과 같습니다.

> ls -l
total 8
drwxr-xr-x 2 mafro mafro 4096 Mar 16 09:02 dir with spaces
drwxr-xr-x 2 mafro mafro 4096 Mar 16 09:02 dir_with_spaces

내 셸에는 몇 가지 사용자 정의가 zsh포함되어 있습니다 . prezto두 상자 모두에 정확히 동일한 도트 파일이 있어야 합니다.

두 시스템 모두에서 동일 합니다 ls.

> which ls
ls: aliased to ls --group-directories-first --color=auto

답변1

이것은 Coreutils의 새로운 기능입니다 ls.

정보 문서에서:

'-N'
'--literal'
'--quoting-style=literal'

파일 이름을 인용하지 마십시오. 그러나 출력이 터미널로 이루어지고 "--show-control-chars" 옵션이 지정되지 않은 경우 "ls"를 사용할 때 그래픽이 아닌 문자는 여전히 물음표로 인쇄됩니다.

답변2

이 기능을 비활성화하려면 이를 추가 export QUOTING_STYLE=literal하거나 ~/.bashrc최신 GNU coreutils 및 지원되지 않는 쉘을 사용하는 경우 다음 export var=value을 사용하십시오.

QUOTING_STYLE=literal
export QUOTING_STYLE

최근에 추가된 인용 스타일은 좋은 기능이지만 기존 스크립팅 및 명령줄 습관을 너무 많이 깨뜨리기 때문에 기본 동작을 변경해서는 안 됩니다. 특히 올바른 일을 하고 변수를 올바르게 인용하는 사람들의 경우 더욱 그렇습니다.

sid그런데 데비안은 8.25-2에서 coreutils의 동작을 되돌렸기 때문에 8.25-1에서만 잠깐 나타났습니다.

관련 정보