从unix中的不同目录复制文件
我的unix操作系统版本是从unix中的不同目录复制文件,unix,sunos,Unix,Sunos,我的unix操作系统版本是 SunOS 5.11 11.3 sun4v sparc sun4v 我有这样的目录结构 ./XYZ_002/DIR2/XYZ DIR DIR/Software Library/TAR Files/TAR5240_5_0.tar.Z ./XYZ_001/DIR1/XYZ DIR DIR/Software Library/TAR Files/XYZ_4_0.tar.Z ./ABC_002/Software Library/TAR Files/tar_3_0.tar.Z
SunOS 5.11 11.3 sun4v sparc sun4v
我有这样的目录结构
./XYZ_002/DIR2/XYZ DIR DIR/Software Library/TAR Files/TAR5240_5_0.tar.Z
./XYZ_001/DIR1/XYZ DIR DIR/Software Library/TAR Files/XYZ_4_0.tar.Z
./ABC_002/Software Library/TAR Files/tar_3_0.tar.Z
./ABC_001/Software Library/TAR Files/tar_file_1_0.tar.Z
我正在使用下面的命令将所有.tar.Z文件复制到当前目录
find . -name '*tar.Z' -exec cp . {} +
但是,我在运行该命令时遇到以下错误
cp: Target ./ABC_001/Software Library/TAR Files/tar_file_1_0.tar.Z must be a directory
Usage: cp [-f] [-i] [-p] [-@] [-/] f1 f2
cp [-f] [-i] [-p] [-@] [-/] f1 ... fn d1
cp -r|-R [-H|-L|-P] [-f] [-i] [-p] [-@] [-/] d1 ... dn-1 dn
我已经看了下面的网址,但它们不适合我
可能是因为文件夹名称中有空格,所以出现了此错误?
有什么办法可以解决这个问题吗
注意:我用-t选项做了cp,但得到了下面的错误
mymachine> find . -name '*tar.Z' -exec cp -t . {} +
cp: illegal option -- t
Usage: cp [-f] [-i] [-p] [-@] [-/] f1 f2
cp [-f] [-i] [-p] [-@] [-/] f1 ... fn d1
cp -r|-R [-H|-L|-P] [-f] [-i] [-p] [-@] [-/] d1 ... dn-1 dn
如果要将所有
.tar
文件从一个目录复制到另一个目录
试试这个:
find *.tar | xargs -I '{}' cp '{}' test/
其中,“test/”
是您的目标目录
希望这有帮助
注意:xargs
标志是大写字母i