gpt4 book ai didi

Bash/C shell : Are there any drawbacks about escaping all characters of a file path?

转载 作者:行者123 更新时间:2023-12-04 05:54:07 25 4
gpt4 key购买 nike

转义 Unix 文件路径的所有字符有什么缺点吗? 缺点,我的意思是:任何类型的限制,文件路径无法被 Unix shell 解释的情况等。

例子:

/my/path/to/file.txt 

变成
\/\m\y\/\p\a\t\h\/\t\o\/\f\i\l\e\.\t\x\t

备注:
  • 可读性在这里不是问题,因为它是为了自动化。
  • shell :Bash Shell 和 C Shell

  • 原因:

    我正在编写一个小型 Python 应用程序,以使用 Unix 的 Bash Shell 上的各种命令行(FFMPEG、Handbrake、FFPROBE、ImageMagick 的识别和转换)对图像和视频进行转码。一些文件路径有空格、括号字符等。如果这些字符没有正确转义,带有这些字符的文件名通常会破坏这些工具中的命令行。我宁愿找到一个普遍适用的解决方案,而不是只转义几个字符,如空格、括号等。特别是在我无法控制文件名并且我尝试制作我的应用程序的情况下在处理带有特殊字符的文件名时尽可能健壮。因此,逃避一切的解决方案。

    结果:

    我已经转义了所有字符并且我没有遇到任何问题,除非 Python OS 模块/函数已经处理了特定操作系统的文件名(在这种情况下转义所有字符是一个问题,但我预料到了)。因此,我会说转义所有字符没有任何缺点(除了我之前提到的情况)。

    问候,

    共生体

    最佳答案

    您给出的示例不起作用,因为通常以反斜杠开头的单个字符不会转义该字符,而是引入了新的含义。 \n例如不是 n转义,但换行符。

    转义特殊字符的另一种方法是将所有内容括在引号中,例如

    "/my/path/to/file.txt"

    有了这个,你只需要转义引号字符 " ,即 \" .或者,您可以在路径周围使用单引号字符,例如
    '/my/path/to/file.txt'

    如果路径包含 ' ,你需要逃避它。

    关于Bash/C shell : Are there any drawbacks about escaping all characters of a file path?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9732286/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com