我想知道Linux路径所需的所有字符转义是什么。例如,路径/home/user1/my music/song 1.mp3需要在ls命令'ls/home/user1/my\music/song\1.mp3'的shell中转义。
我想写一个函数,它接受一个字符串作为路径,并转义所有需要的字符。在斯卡拉我有:

  def normalizePath(path: String): String = {
var normPath = path.replaceAll(" ", "\\\\ ")
normPath = normPath.replaceAll("\\]", "\\\\]")
normPath = normPath.replaceAll("\\[", "\\\\[")

normPath

}
知道还有更多的字符需要转义。另外,这可能可以通过一个命令(更复杂的regex)完成?

最佳答案

你不应该把这件事传给别人。有很多方法可以克服这一点(例如,设置FS环境变量)。只需使用ProcessBuilder类传递命令行参数。

ProcessBuilder proc = new ProcessBuilder("ls", "/home/user1/My Music/song 1.mp3");
proc.start();

10-06 03:59