2012-08-05 107 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