1

我正在尝试清理我的文件名而不实际重命名它们以准备 Mac OS 终端中的“ls -l”。

我正在使用 printf %q 这样的:

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

但是,如果文件名中存在空格(这通常会引发我试图使用此代码更正的错误),则 ls 有胆量使用反斜杠和空格重复确切的文件名,如果我只是自动完成,它将识别shell中带有选项卡的文件名并声称“没有这样的文件或目录”。

我现在对这个命令很生气。我认为 printf 应该产生可导航且正确的文件名。

4

1 回答 1

0

省略了,%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 回答