如何在 linux 中的文件中使用 space 指定路径
how to specify path with space inside file in linux
cat ~/.last_dir
/mnt/c/Users/Administrator/OneDrive/Desktop/main project/backup/main project 2
cd cat ~/.last_dir
-bash: cd: too many arguments
我尝试在文件中使用反斜杠
/mnt/c/Users/Administrator/OneDrive/Desktop/main\ project/backup/main\ project\ 2
还是一样的错误
只需在您的路径两边加上引号:
"/mnt/c/Users/Administrator/OneDrive/Desktop/main project/backup/main project 2"
这应该适用于大多数情况
你需要引用扩展的结果cat ...
:
cd "$(cat ~/.last_dir)"
cd "$(<~/.last_dir)"
首先,将引号 放在 $(...)
周围 $(...)
以构成文件名的 space 部分。
其次,$(<...)
是一个 bash
结构,它直接读取文件而不执行 cat
,但并不完全可移植。
对于更通用、更少 bash 特定的版本,请使用 Maxim 的解决方案。
cat ~/.last_dir
/mnt/c/Users/Administrator/OneDrive/Desktop/main project/backup/main project 2
cd cat ~/.last_dir
-bash: cd: too many arguments
我尝试在文件中使用反斜杠
/mnt/c/Users/Administrator/OneDrive/Desktop/main\ project/backup/main\ project\ 2
还是一样的错误
只需在您的路径两边加上引号:
"/mnt/c/Users/Administrator/OneDrive/Desktop/main project/backup/main project 2"
这应该适用于大多数情况
你需要引用扩展的结果cat ...
:
cd "$(cat ~/.last_dir)"
cd "$(<~/.last_dir)"
首先,将引号 放在 $(...)
周围 $(...)
以构成文件名的 space 部分。
其次,$(<...)
是一个 bash
结构,它直接读取文件而不执行 cat
,但并不完全可移植。
对于更通用、更少 bash 特定的版本,请使用 Maxim 的解决方案。