18.04로 업그레이드 한 후 공간이 '파일 이름'으로 표시되는 파일 이름


23

16.04에서 18.04로 업그레이드 한 후 공백이있는 모든 파일 이름은로 표시됩니다 'file name'. 이전에는 간단했습니다 file name. 공백이없는 파일 이름은 정상적으로 나타납니다.

$ ls
 bar  'foo bar'

기능에 영향을 미치지 않지만 시각적으로 혼란 스럽습니다.

나는 bash껍질로 사용 합니다.

''공백이있는 파일 이름 주위에 표시를 제거하려면 어떻게 해야합니까?


4
파일 이름을 제거하려는 이유는 파일 이름의 일부가 아니며 명령 줄이나 스크립트에서 공백이있는 파일 이름을 관리하는 데 도움이 될 수 있습니다.
Soren A

2
파일 이름의 일부가 아님을 알고 있습니다. 그러나 그들은 시각적으로 혼란스럽고 필요 하지 않습니다 .
vidarlo

4
@SorenA ls스크립트에서 파일을 관리하는 데 사용 하면 잘못되었습니다. 왜의 출력을 구문 분석하지 않아야ls 하고 하지 구문 분석 ls(어떤 대신에 할)?
디저트

2
@ WinEunuuchs2Unix 붙여 넣기가 더 쉬워 지지만 답변에서 언급
했듯이

2
@vidarlo ls저자는 적어도 몇 가지 문제를 해결하고 있습니다. 저자가 Stack Exchange에 적극적으로 참여한다는 것을 알고 있다면 (내 답변의 링크) 향후 개선 사항을 더 쉽게 제안 할 수 있습니다. 그런 다음 다른 사용자의 의견 투표는 작성자가 제안을 구현하도록 권장합니다.
WinEunuuchs2Unix

답변:


33

ls행동 변화는 2016 년부터 되었지만 마침내 우분투로 향하고 있습니다.

이전 동작을 다시 사용하려면을 사용하십시오 ls -N.

선택적으로 환경 변수를 사용할 수 있습니다.

QUOTING_STYLE=literal ls

별명으로 만들거나 이전 동작을 수행하도록 설정 export QUOTING_STYLE=literal하십시오 ~/.bashrc.

언제, 어디서, 왜, 어떻게 이력이 있었는지에 대한 자세한 내용은 위의 링크를 읽으십시오. ls changes저자가 새로운 행동을 정당화 할 수 있는 몇 가지 의견이 있습니다.

변경에 대한 몇 가지 사항.

  • coreutils v8.25에서 도입되었으며 v8.26에서 정렬이 향상되었습니다.
  • 터미널로 출력 할 때만 발생하므로 스크립트를 중단하지 않습니다.
  • 공백이 포함 된 파일의 사용자 출력을 명확하게합니다.
  • 출력을 소독하여 복사하여 붙여 넣기가 안전합니다.
  • 출력은 항상 셸에 복사하여 다시 붙여 넣을 때 항상 유효 합니다.
  • 사용자는 -N자신의 ls별칭 에 추가하여 이전 형식으로 돌아갈 수 있습니다

12

그건 ls그 출력, 실행을 인용한다 :

ls -N

따옴표없이 출력을 얻으려면.

man ls

-N,-리터럴

따옴표없이 항목 이름 인쇄


원하는 경우 별명을 지정하십시오.

echo "alias ls='ls -N'" >> .bashrc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.