URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7390
[ Назад ]

Исходное сообщение
"bash  сриптинг - xargs cp"

Отправлено dan , 28-Май-08 19:30 
имеется файл /ora/db_files.txt с именами файлов такого вида

MEMBER
--------------------------------------------------------------------------------
/ora/u03/oradata/redo01.log
/ora/u02/oradata/redo01.log
2 rows selected.
FILE_NAME
--------------------------------------------------------------------------------
/ora/u03/oradata/users.bf
/ora/u03/oradata/indx01.dbf
/ora/u03/oradata/tools01.dbf

необходимо прочитать все данные из файла построчно и скопировать эти файлы в другое место.

cat /ora/db_files.txt |grep /ora | xargs cp target=/ora/backup/
дает ошибку вида
cp: Target /ora/u03/oradata/tools01.dbf must be a directory

где грабли?
дайте альтернативу?


Содержание

Сообщения в этом обсуждении
"bash  сриптинг - xargs cp"
Отправлено phpcoder , 28-Май-08 19:35 
Попробуйте так:

fgrep '^/ora' /ora/db_files.txt | while read FILE; do cp "$FILE" /ora/backup/; done


"bash  сриптинг - xargs cp"
Отправлено mmm , 29-Май-08 08:48 
>Попробуйте так:
>
>fgrep '^/ora' /ora/db_files.txt | while read FILE; do cp "$FILE" /ora/backup/; done
>

всем спасибо вариант
fgrep '/ora' /ora/db_files.txt | while read FILE; do cp "$FILE" /ora/backup/; done

прокатил :)


"man xargs; man cp"
Отправлено Andrey Mitrofanov , 28-Май-08 21:35 
>cat /ora/db_files.txt |grep /ora | xargs cp target=/ora/backup/
>дает ошибку вида
>cp: Target /ora/u03/oradata/tools01.dbf must be a directory
>
>где грабли?

--target-directory=КАТАЛОГ (начиная с версии file-utils 4.1)
Задаёт  каталог  назначения,  куда будет осуществляться копирование.  Имеется в
виду для использования с xargs(1), как, например, в "ls |  xargs  cp  --target-
directory=../d".

>дайте альтернативу?

....|xargs -IFILE cp FILE /ora/backup/


"bash  сриптинг - xargs cp"
Отправлено L0n3R4ng3r , 01-Июн-08 00:04 
>[оверквотинг удален]
>
>необходимо прочитать все данные из файла построчно и скопировать эти файлы в
>другое место.
>
>cat /ora/db_files.txt |grep /ora | xargs cp target=/ora/backup/
>дает ошибку вида
>cp: Target /ora/u03/oradata/tools01.dbf must be a directory
>
>где грабли?
>дайте альтернативу?

for i in $(grep "^ora" /ora/db_files.txt); do cp $i /ora/backup/; done