【发布时间】:2015-09-03 00:33:36
【问题描述】:
我正在尝试使用 shell 脚本复制所有文件和子目录。问题是一些文件夹名称有空格。
cp -r "//shrdata/Legal/test location/test folder/*" "//shrdata/Legal/open access/"
我得到的错误是“系统找不到指定的文件”
【问题讨论】:
我正在尝试使用 shell 脚本复制所有文件和子目录。问题是一些文件夹名称有空格。
cp -r "//shrdata/Legal/test location/test folder/*" "//shrdata/Legal/open access/"
我得到的错误是“系统找不到指定的文件”
【问题讨论】:
试试:
cp -r "/shrdata/Legal/test location/test folder"/* "/shrdata/Legal/open access/"
要使* 正常工作,它必须在引号之外。
假设我们有一个带有两个文件的test folder:
$ ls -1 test\ folder/
file1
file2
现在,让我们尝试将* 放在引号中:
$ echo "test folder/*"
test folder/*
因为* 用引号引起来,所以它不会扩展为文件名列表。相反,它仅被视为文字字符。因此,如果我们尝试以这种方式复制文件,我们将收到一个 file-not-found 错误,因为没有文件名为 *:
$ cp "test folder/*" target
cp: cannot stat ‘test folder/*’: No such file or directory
如果我们将* 放在引号之外,则将执行路径名扩展:
$ echo "test folder"/*
test folder/file1 test folder/file2
这意味着当与cp 一起使用时,此表单将正常工作。
【讨论】: