1

Mac OS ターミナルでの「ls -l」に備えて、実際に名前を変更せずにファイル名をサニタイズしようとしています。

次のように printf %q を使用しています。

ls -l $(printf %q "filenamewithspaceinit")

ただし、ファイル名にスペースが含まれている場合 (通常、このコードで修正しようとしていたエラーが発生します)、ls には、単純にオートコンプリートした場合に認識されるバックスラッシュとスペースを使用して、正確なファイル名を繰り返す必要があります。シェルでタブ付きのファイル名を表示し、「そのようなファイルまたはディレクトリはありません」と主張します。

私は今、コマンドに非常に憤慨しています。printf は、ナビゲート可能で適切なファイル名を生成するはずだと思いました。

4

1 に答える 1

0

2 度引用し%qないように を省略しますか?

15:23:54-qsario@MacBook-Air:~/test$ ls
foo bar

15:24:01-qsario@MacBook-Air:~/test$ ls -l "$(printf %q 'foo bar')"
ls: foo\ bar: No such file or directory

15:24:04-qsario@MacBook-Air:~/test$ ls -l "$(printf 'foo bar')"
-rw-r--r--  1 qsario  staff  0 Aug  5 15:19 foo bar
于 2012-08-05T22:26:37.260 に答える