![](/img/trans.png)
[英]Shell script to copy and prepend folder name to files from multiple subdirectories
[英]Shell Script Copy All Files and Subdirectories - Folder Names With Spaces
我正在尝试使用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/*
由于*
用引号引起来,因此它不会扩展为文件名列表。 相反,它仅被视为文字字符。 因此,如果我们尝试以这种方式复制文件,则会得到一个文件未找到的错误,因为没有文件被命名为*
:
$ cp "test folder/*" target
cp: cannot stat ‘test folder/*’: No such file or directory
如果我们将*
放在引号之外,则将执行路径名扩展 :
$ echo "test folder"/*
test folder/file1 test folder/file2
这意味着当与cp
一起使用时,此格式将正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.