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

私のDebianボックスには次のようなものがあります。

> 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ところで、Debianは8.25-2でcoreutilsの動作を元に戻したので、8.25-1でしかしばらく現れました。

関連情報