2012-08-05 109 views
1

我正在尝试清理文件名,但实际上并未将它们重命名为准备Mac OS终端中的“ls -l”。命令“ls”找不到现有文件

我使用的printf%Q是这样的:

LS -l $(printf的%Q “filenamewithspaceinit”)

然而,如果空间中存在的文件名(通常引起的错误我试图纠正这个代码),ls有胆量重复确切的文件名反斜杠和空格,它会承认,如果我只是自动完成文件名与shell中的选项卡,并声称有“没有这样的文件或目录。”

我现在对命令非常恼火。我认为printf应该能够生成可导航和正确的文件名。

+0

对不起,我的意思是说ls -l“$(printf%q”filenamewithspaceinit“)”不起作用。 – user1153424 2012-08-05 21:18:20

回答

0

退出%q所以你不要两次引用它?

15:23:[email protected]:~/test$ ls 
foo bar 

15:24:[email protected]:~/test$ ls -l "$(printf %q 'foo bar')" 
ls: foo\ bar: No such file or directory 

15:24:[email protected]:~/test$ ls -l "$(printf 'foo bar')" 
-rw-r--r-- 1 qsario staff 0 Aug 5 15:19 foo bar 
+0

耶!谢谢。 – user1153424 2012-08-05 22:52:41