копировать файлы из разных каталогов в unix - PullRequest
0 голосов
/ 06 июня 2018

моя версия операционной системы 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

Я посмотрел ниже URL, но они не работают для меня

Копирование файлов из другого каталога в общий каталог

https://askubuntu.com/questions/342692/how-to-copy-files-from-multiple-directories

возможно, я получаю эту ошибку, потому что в именах папок есть пробелы?какие-нибудь идеи, как это можно решить?

Примечание: я сделал cp с опцией -t, но получаю ошибку ниже

  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

1 Ответ

0 голосов
/ 20 июня 2018

Если вы хотите, чтобы все .tar файлы были скопированы из одного каталога в другой,

попробуйте это:

find *.tar | xargs -I '{}' cp '{}' test/

Где 'test/' - ваш целевой каталог.

Надеюсь, это поможет.

Примечание: флаг xargs - это заглавная буква i.

...