繁体   English   中英

Shell脚本复制所有文件和子目录-带有空格的文件夹名称

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM