nixp.ru v3.0

21 октября 2017,
суббота,
15:12:41 MSK

DevOps с компанией «Флант»
borz написал 29 ноября 2005 года в 03:35 (469 просмотров) Ведет себя неопределенно; открыл 4 темы в форуме, оставил 4 комментария на сайте.

Задача: объединить стандартные выводы двух команд (com1 и com2) и полученный результат послать на стандартный ввод третьей команды (com3). Возможное решение:

сom1 > file1 ; com2 | cat file1 — | com3 ; rm file1

Пришлось создать временный файл file1. Можно найти решение без временного файла?

Упрощенная задача. В конец стандартного вывода одной из команд дописать «Hello, world!» и послать на стандартный ввод второй команды. Из здесь тоже требуется временный файл:

echo «Hello, world!» > file1 ; com1 | cat — file1 | com3 ; rm file1

Можно ли сделать без временного файла?

rgo
borz
сom1 > file1 ; com2 | cat file1 — | com3 ; rm file1

(com1; com2) | com3

borz

Большое спасибо! Про круглые скобки я совсем не подумал.

DimkaS

наверно, меня пошлют на 3 буквы (man),

но я все равно спрошу!

как отправить вывод команды find на вход команды cp?

fly4life
DimkaS
наверно, меня пошлют на 3 буквы (man),

но я все равно спрошу!

как отправить вывод команды find на вход команды cp?

Ещё б знать, какую задачу решаешь…

Может быть тебе вполне подойдёт опция '-exec' из 'man find'.

metal

Возможно так: cp `find /` /dev/null

DimkaS
fly4life
Ещё б знать, какую задачу решаешь…

Может быть тебе вполне подойдёт опция '-exec' из 'man find'.

Задача простая — найти разбросанные по всему винту файлы определенного типа и сложить с одном месте. Похоже, есть уже 2 способа. Пойду пробовать =)

Genie

man find

man xargs

man cp

$ find /some/path/ -type f -iname '*.txt' -print0 |xargs -r0 cp --target-directory /path/to/store
rgo
Genie
man find

man xargs

man cp

я б отправлял в info «Finding Files», там всё очень подробно расписано и с примерами… описаны find, xargs, locate. Ну а вообще по-мойму info coreutils, это место, откуда стоит начинать знакомство с linux’ом и командной строкой в частности. Плавно перетекая оттуда в info bash.

DimkaS

Всем спасибо, все получилось.