我的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
./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
我看过下面的网址,但它们对我不起作用
将文件从不同目录复制到公共目录
https://askubuntu.com/questions/342692/how-to-copy-files-from-multiple-directories
也许,我收到此错误是因为文件夹名称中有空格? 任何想法如何解决这个问题?
注意:我用 -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。