提权时选择可读写目录,为何尽量不用带空格的目录
1. 命令行解析问题
在 Linux、Windows 等操作系统的命令行环境中,空格被视为命令、参数和选项的分隔符
例如,你想将一个文件写入 /tmp/my file/
目录:
- 错误的做法:
echo "hello" > /tmp/my file/test.txt
- 命令行会将其解释为:
- 命令:
echo "hello"
- 参数:
>
- 参数:
/tmp/my
- 参数:
file/test.txt
- 显然,这会导致命令执行失败,因为
/tmp/my
目录不存在
- 正确的做法:为了让命令行将带空格的路径看作一个整体,需要用引号将路径包裹起来
echo "hello" > "/tmp/my file/test.txt"
echo "hello" > /tmp/"my file"/test.txt
echo "hello" > /tmp/my file/test.txt