我正在尝试使用bash脚本将文件复制到当前目录.
为了处理需要转义的路径,使用了一个转义变量然后提供给cp命令的变量.
cp命令抱怨:
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory
Run Code Online (Sandbox Code Playgroud)
我知道这意味着什么,但我无法理解为什么会这样.
这是代码:
z="/a/b/c d (e) f.txt"
y=`printf %q "$z"`
cp $y x.txt # not working as expected
echo cp $y x.txt # output is "cp /a/b/c\ d\ \(e\)\ f.txt x.txt"
Run Code Online (Sandbox Code Playgroud)
注意:当您遇到bash脚本问题时,应该使用该-x选项运行它,因为它提供了第一级调试.
文件名的转义不正确.你应该使用:
cp "$z" x.txt
Run Code Online (Sandbox Code Playgroud)