আমি স্কিপ চালাচ্ছি এবং রিমোট সার্ভার থেকে একটি ফোল্ডার অনুলিপি করছি, আমি -rl দিয়ে চালাচ্ছি, তাই আমি ফাইলগুলি অনুলিপি করে দেখছি, বর্তমান ফাইলটি কোনও উপায়ে ছেড়ে দেওয়া কি সম্ভব?
আমি স্কিপ চালাচ্ছি এবং রিমোট সার্ভার থেকে একটি ফোল্ডার অনুলিপি করছি, আমি -rl দিয়ে চালাচ্ছি, তাই আমি ফাইলগুলি অনুলিপি করে দেখছি, বর্তমান ফাইলটি কোনও উপায়ে ছেড়ে দেওয়া কি সম্ভব?
উত্তর:
না আপনি পারবেন না। তবে আপনি থামাতে scp
এবং rsync
পরিবর্তে ব্যবহার করতে পারেন । এটি কেবলমাত্র আংশিক অনুলিপি থেকে থাকা পার্থক্যগুলি অনুলিপি করবে এবং আপনি যে কোনও ফাইল বা ডায়ারগুলি স্থানান্তর করতে চান না তা বাদ দিতে পারেন।
rsync -avP -e ssh --exclude=somefile --exclude=somedir ./localdir/ user@server:remotedir/
না, কোনও কমান্ডের -r
মধ্যে একাধিক ফাইল স্থানান্তর সম্পাদনকারী বা অন্য কোনও সিনট্যাক্স সহ নয় scp
।
এটি বলেছিল, scp
ইউনিক্সের দৃষ্টান্তটিও অনুসরণ করে: এমন প্রোগ্রামগুলি লিখুন যা সহজ, সুনির্দিষ্ট কার্যকারিতা সরবরাহ করে যা আকর্ষণীয় উপায়ে এক সাথে বেঁধে রাখা যায়। এর অর্থ এটি এমন একটি লুপ লেখা সম্ভব যা ইন্টারেক্টিভভাবে প্রতিটি ফাইলের জন্য কমান্ডের পৃথক অনুরোধ সম্পাদন করে । তারপরে পৃথক কমান্ডগুলি চালিত হওয়ার সাথে সাথে আপনি তা ছিন্ন করতে সক্ষম হবেন। করুন (Ctrl-সি)
এর কোডটি পাঠকের কাছে অনুশীলন হিসাবে ছেড়ে দেওয়া হচ্ছে, তবে একটি ইন্টারেক্টিভ শেলের মধ্যে এই লুপটি কার্যকর করার জন্য জোর দেওয়া উচিত। অ-ইন্টারেক্টিভ শেল থেকে বেরিয়ে আসা পুরো কাজটি শেষ করে দেবে।
হ্যা, তুমি পারো!
আসুন দূরবর্তী ডিরেক্টরিটি তালিকাবদ্ধ করুন এবং প্রতিটি ফাইল পৃথকভাবে অনুলিপি করুন। তারপরে প্রতিটি ফাইল যা আপনি অনুলিপি করতে চান না তার জন্য ctrl-c চাপুন:
OLD_IFS="$IFS"
IFS=$'\n'
for file in `ssh user@host ls /remote/directory/`
do echo user@host:/remote/directory/$file /local/directory/
done;
IFS="$OLD_IFS"
ওলডি_আইএফএস এগুলিতে ফাঁকা স্থান সহ ফাইলগুলি পরিচালনা করতে এখানে রয়েছে।