menyalin pohon direktori ke lokasi lain, dengan kompresi opsional


1

Yang ingin saya lakukan adalah menyalin direktori ke posisi anther (di Linux), dan kompres beberapa file (dengan ekstensi tertentu) dengan GZip di tujuan, sementara file lain hanya disalin. Mungkinkah ini dicapai oleh one-liner dengan efisiensi yang baik? Banyak file menjadi salinan maka semakin efisien semakin baik.

Jawaban:


1

Nah, sebagai latihan akademis:

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.