Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 无法将文件夹从源覆盖到目标_Bash_Cp - Fatal编程技术网

Bash 无法将文件夹从源覆盖到目标

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

您好,我正在尝试使用以下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/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手册页

变量可以通过以下形式的语句赋值

名称=[值]

有几件事:

  • 首先,应该为bash脚本添加一个头
  • 那么您的变量赋值不正确(额外空格)
  • 您的cp没有复制任何最终的子目录
  • 工作示例:

    #!/bin/bash
    
    src="./src/data"
    dest="./dst/data"
    echo  "Src:${src},Dest:${dest}"
    rm -rf ${dest}
    cp -R ${src} ${dest}
    
    有几件事:

  • 首先,应该为bash脚本添加一个头
  • 那么您的变量赋值不正确(额外空格)
  • 您的cp没有复制任何最终的子目录
  • 工作示例:

    #!/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

    您的副本对目录无效。变量赋值有额外的前导空格。您的副本无法用于目录。变量赋值有额外的前导空格。