[BSD] xargs hogyan
Laszlo Nagy
gandalf at designaproduct.biz
2006. Dec. 14., Cs, 16:56:23 CET
>> Talán így?
>>
>> ls fromdir | xargs -I '{}' sh -c "chmod 600 fromdir/'{}' ;chown
>> user1:group1 fromdir/'{}' ;mv fromdir/'{}' todir/'{}' "
>>
>> De ebben nem nagyon tetszik hogy még egy shellt indít. Tök fölösleges.
>> Nincs jobb megoldás?
>>
Közben rájöttem hogy csak az 1 percnél régebbi file-ok kellenek, és
átírtam find-ra:
find ORDER* \! -newerct '1 minute ago' -print0 | xargs -0 -I '{}' sh -c
" chmod 660 '{}' ; chown gandalf:users '{}' ; mv '{}' ${DESTDIR}/'{}' "
Ez jól működik, kivéve ha nincs ott ilyen file, mert akkor
find: No match.
üzenetet kapok az stderr-ra. Roppant idegesítő hogy minden percben kapok
egy levelet a cron-tól. Viszont nem találtam olyan kapcsolót, ami
kikapcsolá ezt az üzenetet ha nincs match. Esetleg bele tudnám küldeni a
/dev/null-ba az stderr-t úgy, hogy közben az stdout megmaradjon a cső
végén? Tudom elég buta kérdés, biztosan roppant egyszerű a válasz. :-)
Laci
További információk a(z) BSD levelezőlistáról