【发布时间】:2018-04-06 20:52:23
【问题描述】:
我有一个 bash 脚本正在复制一些文件,但它似乎不能正常工作。附带说明的是,源目录中没有匹配的文件。但是脚本的重点是复制文件如果有文件要复制。
我正在尝试做的基本 sn-p:
source_loc=/u01
target_log=/u02
/usr/bin/cp "$source_loc"/dir/*file* "$target_loc"/dir/
结果
Usage: cp [-fhipHILPU][-d|-e] [-r|-R] [-E{force|ignore|warn}] [--] src target
or: cp [-fhipHILPU] [-d|-e] [-r|-R] [-E{force|ignore|warn}] [--] src1 ... srcN directory
如果我将 set -x 添加到我的脚本中,我会得到这个...
+ /usr/bin/cp /u02/dir/
Usage: cp [-fhipHILPU][-d|-e] [-r|-R] [-E{force|ignore|warn}] [--] src target
or: cp [-fhipHILPU] [-d|-e] [-r|-R] [-E{force|ignore|warn}] [--] src1 ... srcN directory
+ set +x
关于此的额外特殊之处在于,如果我重新运行脚本而不更改任何内容,我会得到以下输出:
cp: /u01/dir/*file*: No such file or directory
现在我还没有用源文件中的匹配文件测试这个脚本(我很快就会),但我想确保我没有遗漏任何东西。我不在乎得到错误,我只是想确保我得到正确的错误(即没有这样的文件或目录)。
任何见解都将不胜感激。
【问题讨论】:
-
我们正在等待您的文件匹配测试。
-
太棒了。谢谢你。不幸的是,实际的脚本需要一些时间来运行,所以它可能有点。我正在测试。上面有什么完全错误的吗?
-
您应该使用
find?find $source_loc/dir/ -type f -exec cp {} $target_loc/dir/ \;