Rsync এর জন্য বিকল্প নেই। আমি দুটি সমাধান দেখতে পাচ্ছি। একটি হ'ল rsync ত্রুটি বার্তাগুলি পার্স করা; এটি খুব মজবুত নয়। অন্যটি ফিল্টার করার জন্য অপঠনযোগ্য ফাইলগুলির একটি তালিকা তৈরি করা।
cd /source/directory
exclude_file=$(mktemp)
find . ! -readable -o -type d ! -executable |
sed -e 's:^\./:/:' -e 's:[?*\\[]:\\1:g' >>"$exclude_file"
rsync -rlptD --exclude-from="$exclude_file" . /target/directory
rm "$exclude_file"
যদি আপনার find
না থাকে -readable
এবং -executable
উপযুক্ত -perm
নির্দেশিকা দ্বারা এগুলি প্রতিস্থাপন করুন ।
এটি ধরে নিয়েছে যে কোনও অপঠনযোগ্য ফাইল নেই যার নামে একটি নতুন লাইন রয়েছে। আপনার যদি এগুলি মোকাবেলা করার প্রয়োজন হয় তবে আপনাকে এই জাতীয় নাল-ডিলিমিট ফাইল তালিকা তৈরি -0
করতে হবে এবং এতে বিকল্পটি পাস করতে হবে rsync
:
find . \( ! -readable -o -type d ! -executable \) -print0 |
perl -0000 -pe 's:\A\./:/:' -e 's:[?*\\[]:$1:g' >>"$exclude_file"