Subj : Re: How to execute more than one command with find -exec? To : comp.os.linux From : Cheng Mo Date : Fri Nov 19 2004 09:30 am noi wrote: > On Thu, 18 Nov 2004 17:35:30 +0800, Cheng Mo thoughtfully wrote: > > >>The scenario is: >>In folder XXX there are lots of *.gif files. Those *.gif files whose >>filename don't appear in file abc.txt should be deleted. I want to do this >>job in one line command. >>find XXX -name "*.gif" -exec ........... \; But I don't know how to write >>the part of .............. >> >>I tried >>find XXX -name "*.gif" -exec grep {} abc.txt || rm {} \; But it seems >>-exec don't take behind as a combination of two commands. Anybody can tell >>me how to execute more than one command with find -exec? Thanks > > > > Seems complicated with find. Alternative? > tar -zcf gif.tgz -T abc.txt && find XXX -iname "*.gif" -exec rm {}\; > > In your example, > > find XXX -iname "*.gif" | grep -v -f abc.txt | xargs rm find XXX -iname "*.gif" will output filename with XXX as prefix, but in abx.txt only filename is written. How to cut those XXX? .