【问题标题】:Command "ls" can't find existing file命令“ls”找不到现有文件
【发布时间】:2012-08-05 21:15:37
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 对不起,我的意思是说 ls -l "$(printf %q "filenamewithspaceinit")" 不起作用。

标签: macos terminal printf ls


【解决方案1】:

省略%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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-25
    • 2017-02-23
    • 2015-10-23
    • 2017-08-09
    • 1970-01-01
    • 2019-08-28
    • 2017-03-03
    • 1970-01-01
    相关资源
    最近更新 更多