नाम क्रम में एक निर्देशिका के तहत फाइलों की सूची


6

मैं एक निर्देशिका के तहत फाइलों की एक सूची चाहता था, जो एक छवि दर्शक को पारित करने के लिए नाम क्रम में है।

मैं उपयोग कर रहा हूं find $PHOTODIR -iname "*.jpg"। दुर्भाग्य से यह चित्रों को क्रम से बाहर करता है।

USB कुंजी पर (स्वरूपित FAT32) मैं समझ सकता था कि फ़ाइलों को निर्देशिका प्रविष्टियों के क्रम में संसाधित किया जाता है, इसलिए मैंने एक Ext4 ड्राइव पर प्रतिलिपि बनाई, जो मुझे लगा कि नाम के क्रम में फ़ाइलों का उत्पादन करेगा, लेकिन अभी भी समस्याएं हैं; मुझे लगता है कि वे इनोड ऑर्डर हैं।

ls क्रम में सूचियाँ, लेकिन मुझे सापेक्ष पथ चाहिए।

क्या कोई उपयुक्त स्क्रिप्ट का सुझाव दे सकता है?

जवाबों:


9

"नाम आदेश" द्वारा आप एक सरल वर्णमाला छंटाई मतलब हैं, तो आप सिर्फ सकता है परिणाम है, जो जब तक ठीक काम करता है फ़ाइलों के रूप में उनके नाम में एक नई पंक्ति शामिल नहीं है:sortfind

find "$PHOTODIR" -iname "*.jpg" | sort

यदि आप इन्हें एक छवि दर्शक या किसी अन्य कमांड के तर्क के रूप में पारित करना चाहते हैं, तो आपको उन्हें इसमें डालने की आवश्यकता है xargs। जब तक फ़ाइल नाम या पथ में कोई व्हाट्सएप न हो तब तक यह बॉक्स से बाहर काम करता है।

यदि आप चाहते हैं कि यह किसी भी फ़ाइल नाम या पथ के साथ काम करे, -print0तो findNUL- वर्णों द्वारा सीमांकित आउटपुट बनाने के लिए तर्क का उपयोग करें , के साथ सॉर्ट करें -z, और उपयोग करें xargs -0:

find "$PHOTODIR" -iname "*.jpg" -print0 | sort -z | xargs -0 <command>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.