Bash 无法将文件夹从源覆盖到目标
您好,我正在尝试使用以下shell脚本将文件夹从Bash 无法将文件夹从源覆盖到目标,bash,cp,Bash,Cp,您好,我正在尝试使用以下shell脚本将文件夹从源覆盖到目标: update.sh src= './Server/Core/Server/bin/Debug/netcoreapp2.1/publish' dest= './Server/publish' echo "Src:${src},Dest:${dest}" cp "$src" "$dest" 我得到以下错误: $ ./update.sh ./update.sh: line 1: ./Server/Core/Server/bin/De
源
覆盖到目标
:
update.sh
src= './Server/Core/Server/bin/Debug/netcoreapp2.1/publish'
dest= './Server/publish'
echo "Src:${src},Dest:${dest}"
cp "$src" "$dest"
我得到以下错误:
$ ./update.sh
./update.sh: line 1: ./Server/Core/Server/bin/Debug/netcoreapp2.1/publish: Is a directory
./update.sh: line 2: ./Server/publish: Is a directory
Src:,Dest:
cp: cannot stat '': No such file or directory
为什么它不能解析
src
和dest
?我尝试使用“$src”
和“${src}”
都没有效果。删除第一个引号之前的空格,在=
之前或之后都不应存在空格
变量的声明应如下所示:
src='./Server/Core/Server/bin/Debug/netcoreapp2.1/publish'
dest='./Server/publish'
使用引号前的空格,它将路径视为需要执行的文件,并且这些命令的结果(如果文件存在)将是变量的值
类似,如果在代码> >代码>之前添加空白,它会考虑变量名是需要执行的命令。< /P> 来自bash手册页
变量可以通过以下形式的语句赋值 名称=[值]删除第一个引号之前的空格,在
=
之前或之后不应存在空格
变量的声明应如下所示:
src='./Server/Core/Server/bin/Debug/netcoreapp2.1/publish'
dest='./Server/publish'
使用引号前的空格,它将路径视为需要执行的文件,并且这些命令的结果(如果文件存在)将是变量的值
类似,如果在代码> >代码>之前添加空白,它会考虑变量名是需要执行的命令。< /P> 来自bash手册页
变量可以通过以下形式的语句赋值 名称=[值] 有几件事:#!/bin/bash
src="./src/data"
dest="./dst/data"
echo "Src:${src},Dest:${dest}"
rm -rf ${dest}
cp -R ${src} ${dest}
有几件事:
#!/bin/bash
src="./src/data"
dest="./dst/data"
echo "Src:${src},Dest:${dest}"
rm -rf ${dest}
cp -R ${src} ${dest}
只需删除变量赋值中的空格。 此外,对于使用子目录进行复制,请使用“
cp-r
”递归复制目录
对其他选项执行“
cp--help
”只需删除变量赋值中的空格即可。
此外,对于使用子目录进行复制,请使用“cp-r
”递归复制目录
对其他选项执行“
cp--help
”您的副本对目录无效。变量赋值有额外的前导空格。您的副本无法用于目录。变量赋值有额外的前导空格。