मेरे पास एक मेनिफेस्ट फ़ाइल है जो केवल न्यूलाइन से अलग फ़ाइल नामों की एक सूची है। किसी फ़ोल्डर से मैनिफेस्ट में नामित सभी फ़ाइलों को मैं कैसे हटा सकता हूं?बाश: मैनिफेस्ट में नामित सभी को छोड़कर सभी फ़ाइलों को कैसे हटाएं?
मैं एक find ./ ! -name "filename"
आदेश गतिशील निर्माण करने के लिए कोशिश की है:
command="find ./ ! -name \"MANIFEST\" "
for line in `cat MANIFEST`; do
command=${command}"! -name \"${line}\" "
done
command=${command} -exec echo {} \;
$command
लेकिन फ़ाइलों रहते हैं।
[नोट:] मुझे पता है कि यह गूंज का उपयोग करता है। मैं यह जांचना चाहता हूं कि इसका उपयोग करने से पहले मेरा आदेश क्या करता है।
समाधान: (धन्यवाद PixelBeat)
ls -1 > ALLFILES
sort MANIFEST MANIFEST ALLFILES | uniq -u | xargs rm
अस्थायी फ़ाइल के बिना:
ls -1 | sort MANIFEST MANIFEST - | uniq -u | xargs rm
दोनों की उपेक्षा है कि क्या फ़ाइलें नहीं हल कर रहे हैं /।
धन्यवाद सभी! मैं इसे अपने शेल गाइड के लिए पिक्सेलबीट दे रहा हूं जिसमें समाधान – brice