[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