मेरे पास फ़ाइलों की एक सूची है जो मैं जांचना चाहता हूं कि क्या वे मेरे फाइल सिस्टम पर मौजूद हैं। मैंने इसका उपयोग करने का सोचा find
:
for f in $(cat file_list); do
find . -name $f > /dev/null || print $f
done
(का उपयोग करते हुए zsh
) लेकिन यह काम नहीं करता है क्योंकि यह फ़ाइल find
से बाहर निकलता 0
है या नहीं। मुझे लगता है कि मैं इसे किसी अन्य परीक्षण के माध्यम से पारित कर सकता हूं जो यह देखने के लिए परीक्षण करता है कि क्या find
कोई आउटपुट (क्रूड लेकिन प्रभावी के > /dev/null
साथ बदलने के लिए होगा |grep ''
) का उत्पादन होता है, लेकिन ऐसा लगता है कि बकरी को पकड़ने के लिए ट्रोल का उपयोग करना (अन्य राष्ट्रीयताओं को स्लेजहैमर और अखरोट के बारे में कुछ कहना हो सकता है) )।
क्या find
मुझे उपयोगी निकास मूल्य देने के लिए ज़बरदस्ती करने का कोई तरीका है ? या कम से कम उन फ़ाइलों की सूची प्राप्त करने के लिए जो नहीं मिलीं? (मैं तार्किक संयोजकों के कुछ चालाक विकल्प द्वारा उत्तरार्द्ध को शायद अधिक आसान होने की कल्पना कर सकता हूं, लेकिन मुझे लगता है कि जब मैं इसका पता लगाने की कोशिश करता हूं तो मैं हमेशा गाँठ में बंध जाता हूं।)
पृष्ठभूमि / प्रेरणा: मेरे पास "मास्टर" बैकअप है और मैं यह जांचना चाहता हूं कि मेरे स्थानीय मशीन पर कुछ फाइलें मेरे मास्टर बैकअप पर मौजूद हैं उन्हें हटाने से पहले (थोड़ा स्थान बनाने के लिए)। इसलिए मैंने फाइलों की एक सूची बनाई, ssh
उन्हें मास्टर मशीन में एड किया, और फिर लापता फाइलों को खोजने के लिए सबसे अच्छा तरीका पता लगाने के लिए एक नुकसान में था।
locate
फाइल सिस्टम की वर्तमान स्थिति नहीं दिखा रहा है, यह एक दिन, या एक सप्ताह पुराना भी हो सकता है। यह बैकअप परीक्षण के लिए आधार के रूप में उपयुक्त है।
locate
।