命令“ls”找不到现有文件

时间:2012-08-05 21:15:37

标签: macos terminal printf ls

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

我正在使用printf%q:

ls -l $(printf%q“filenamewithspaceinit”)

但是,如果文件名中存在空格(通常会引发我尝试使用此代码更正的错误),则ls可以使用反斜杠和空格重复确切的文件名,如果我只是使用shell中的tab来自动填充文件名,并声称存在“没有这样的文件或目录。”

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

1 个答案:

答案 0 :(得分: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