GNU मिला?
का गन्नू संस्करण ls
है --group-directories-first
। और cp
है -t
।
जीएनयू नहीं?
सिस्टम की जरूरत नहीं है कि पर जीएनयू है ls
, आपका सर्वश्रेष्ठ दांव लगातार दो कॉल करने के लिए है find
के साथ -maxdepth n
/ -mindepth n
और -type t
उचित विकल्पों के साथ।
find . -maxdepth 1 -mindepth 1 -type d
find . -maxdepth 1 -mindepth 1 \! -type d
फ़ाइलों को कॉपी करने के लिए, पहले लक्ष्य के साथ, आपको एक स्क्रिप्ट लिखनी होगी जो पहले तर्क को सहेजती है, फिर उपयोग करता है shift
, और तर्क को अंत तक जोड़ता है।
#!/bin/sh
target="$1"
shift
cp -r -- "$@" "$target"
ध्यान रहे!
यदि आप इनका एक साथ उपयोग करने की योजना बना रहे थे - अर्थात, ( find
या ls
उपयोग करके xargs
) से सूची एकत्र करना और इसे cp
(या एक cp
आवरण) से पास करना, तो आपको पता होना चाहिए कि फाइलों की पार्सिंग सूची (मूल रूप से, फ़ाइलनाम ) में क्या खतरे हो सकते हैं नई लिपि में ऐसे पात्र रखें जो आपकी स्क्रिप्ट को गड़बड़ कर सकते हैं)। विशेष रूप से, में नज़र find
की -exec
और -print0
विकल्प और xargs
के -0
विकल्प।
कुशलता से निर्देशिका पेड़ों की नकल के लिए एक वैकल्पिक उपकरण।
आप rsync
इसके बजाय उपयोग में देखना चाहते हैं ; इसमें बहुत सारी कार्यक्षमता है जो आपके काम को आसान बना सकती है।
ls
एक--group-directories-first
स्विच है।