LINUX.ORG.RU
ФорумTalks

Нетехнический вопрос про find


0

0

В чём тайный смысл расположения аргументов find:

find /директория /директория -критерий -критерий?

Под xargs его в итоге не засунешь, "--" («дальше опций не будет») не подставишь, ну и вообще непривычно как-то: обычно наоборот —

команда «операция» «данные»

Это всё имеет под собой разумное основание, или кто-то таки-заслужил пожизненное право есть тарелкой из ложки?

★★★★

> Под xargs его в итоге не засунешь, "--" («дальше опций не будет») не подставишь

ниразу подобной необходимости не возникало. можно плз сферическую задачу в вакууме для которой такое может понадобиться?

isden ★★★★★
()

Причину порядка аргументов не знаю, но конструкцию 'find | xargs find' можно заменить через -exec.

$ find /sbin /bin -type d -exec find {} -name sh -or -name init \;
/sbin/init
/bin/sh

hexdump01010101
()

Логика команды find проста, как два пальца об асфальт - find <где> <что> <что_делать_с_найденным>

redgremlin ★★★★★
()

Просто по историческим прочинам, правила еще не выработались тогда. Так у самых старых команд - find, tar/ar, dd.

unsigned ★★★★
()

find очень древняя команда

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от isden

Ну, самое простое: есть файлик, в нём список директорий, где искать.

Хочется сделать: xargs find -type f — <dirlist — но нельзя! Понятно, что это легко обходится...

lodin ★★★★
() автор топика
Ответ на: комментарий от lodin

ХМ... я както так искал через sed в обратных кавычках с кучей экранирований(потом не мог разобраться что за скрипт насочинял, всётаки perl рулит)

SV0L0CH
()
Ответ на: комментарий от redgremlin

Но логика близкой по назначению команды греп уже другая — grep <как -iменно> <что> [<где> <где>...]

И она, как по мне, более логичная, эта логика...

lodin ★★★★
() автор топика
Ответ на: комментарий от isden

Естественно, но можно нарваться на сферический argument list too long в вакууме. Да и в куче кавычек немудрено запутаться.

Предпочитаю while read dir; find $dir ...; done (ну, если не совсем простая команда).

lodin ★★★★
() автор топика
Ответ на: комментарий от unsigned

Ага, ясно. «Я хотел бы, но не могу поменять интерфейс, т.к. у моей программы уже есть несколько десятков пользователей».

lodin ★★★★
() автор топика
Ответ на: комментарий от GotF

>> xargs

Разве оно нужно?


Да. Есть вещи которые никак без xargs не провернуть. Например: touch рекурсивно для каталога.

gogi
()
Ответ на: комментарий от redgremlin

На каталоги не влияет. Я чтением 'man find' не обременён, возможно тут ещё можно что-то подправить. Но мне полюбому проще запомнить вариант с xargs.

gogi
()

man xargs

[code]echo «/» | xargs -I"{}" find «{}» -name something[/code]

а по теме - наверное, так сложилось. ты еще dd вспомни.

alex_the_v ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.