【问题标题】:adb command fail to execute if path contain spaces如果路径包含空格,adb 命令将无法执行
【发布时间】:2014-09-01 05:08:21
【问题描述】:

我正在尝试使用 adb 命令删除文件。但该文件包含空格。所以 adb 命令在读取一半文件名直到空格后会抛出错误。有没有办法克服这个问题。我正在执行以下 adb 命令

当我执行时

adb shell rm /sdcard/samsung_Nexus S_converter.xml

错误信息:rm failed for /sdcard/samsung_Nexus, No such file or directory

我何时执行:

adb shell rm /sdcard/samsung_Nexus_S_converter.xml

文件删除成功

如果有任何解决方法,我已经为此搜索了解决方案。我怎么找不到。

【问题讨论】:

    标签: android shell command-line terminal adb


    【解决方案1】:

    由于您使用的是命令行,因此您需要知道必须使用(在“空格”等特殊字符之前的反斜杠)转义空格,因此,在您的情况下,这也应该有效:

    adb shell rm /sdcard/samsung_Nexus\ S_converter.xml

    希望对你有帮助!

    问候!

    【讨论】:

    • 太棒了。我错过了。它现在对我有用。非常感谢!我认为这是特定于 adb 的。
    • 如果答案有帮助别忘了将其标记为正确,以便其他人花时间回答您的问题...
    • 我正在尝试接受答案。但是,我只能在提问后 15 分钟后才能接受答案。给我5分钟,我会做到的。感谢您指出这一点
    【解决方案2】:

    对我来说,用反斜杠转义空格是不够的:

    $ adb shell ls /storage/sdcard1/audio/Die\ Toten\ Hosen/
    /storage/sdcard1/audio/Die: No such file or directory
    Toten: No such file or directory
    Hosen/: No such file or directory        
    

    由于某种原因,我还不得不用 '' 包围路径:

    $ adb shell ls '/storage/sdcard1/audio/Die\ Toten\ Hosen/'                                                                                                                       
    03 - Boxed Set                                                                                                                                                                                                     
    04 - Compilations                                                                                                                                                                                                  
    05 - Live Albums                             
    

    虽然没有逃跑的包围不起作用:

    $ adb shell ls '/storage/sdcard1/audio/Die Toten Hosen'                                                                                                                       
    /storage/sdcard1/audio/Die: No such file or directory                                                                                                                                                              
    Toten: No such file or directory                                                                                                                                                                                   
    Hosen: No such file or directory      
    

    【讨论】:

    • +1,但为什么会这样。我想到的是,报价只存在于工作机器上,而逃逸则存在于客户端
    • 好吧,我想我是对的 adb shell ls "'/storage/sdcard1/audio/Die Toten Hosen'" 也可以
    • @Mab 现在对我来说似乎合乎逻辑的是我必须围绕路径,因为它不是本地文件系统上的路径。在本地文件系统上转义就足够了,但路径作为参数传递给 adb 命令。如果它没有被包围 adb 因为空格而将其视为 3 个参数。
    【解决方案3】:

    你有没有尝试逃离空间

    adb shell rm /sdcard/samsung_Nexus\ S_converter.xml

    【讨论】:

    • 太棒了。我错过了。它现在对我有用。非常感谢!我认为这是特定于 adb 的。
    猜你喜欢
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 2013-04-30
    相关资源
    最近更新 更多