वैकल्पिक संपीड़न के साथ एक निर्देशिका ट्री को दूसरे स्थान पर कॉपी करना


1

मैं क्या करना चाहता हूं एक निर्देशिका को (लिनक्स पर) एथेर स्थिति में कॉपी करना है, और गंतव्य पर GZip के साथ कुछ फ़ाइलों (एक निश्चित विस्तार के साथ) को संपीड़ित करना है, जबकि अन्य फाइलें बस कॉपी की जाती हैं। क्या यह एक-लाइनर द्वारा अच्छी दक्षता के साथ हासिल किया जा सकता है? बहुत सारी फाइलें कॉपी की जानी हैं इसलिए अधिक कुशल हैं।

जवाबों:


1

खैर, एक अकादमिक अंश के रूप में:

set -e # abort on errors
find /source -print | while read object_name; do
  if [ -d "$object_name" ]; then
    mkdir -p /destination/$object_name
  else
    if echo "$object_name" | egrep "(txt|html|...)" >/dev/null # extensions you want to compress
      cat $object_name | gzip >/destination/${object_name}.gz
    else
      cp $object_name /destination/$object_name
    fi
  fi
  rm /source/$object_name # could comment this out to preserve the source if you have the space
done
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.