পুনরাবৃত্তভাবে ব্যতিক্রমগুলি সহ একটি ডিরেক্টরি থেকে অন্য ডিরেক্টরিতে সমস্ত ফাইল অনুলিপি করুন


8

এক ডিরেক্টরি থেকে অন্য ডিরেক্টরিতে কয়েকটি যুক্ত করা ছাড়া আমার সমস্ত ফাইলের অনুলিপি কীভাবে দরকার। যেমন:

cp -R test /www/test2 would copy all

তবে আমি লগ এবং লগ নামক দুটি ফোল্ডার বাদ দিতে চাই।

আমি এরকম কিছু চেষ্টা করেছি:

find ~test -not -name logs,log |  cp -R test /www/test2 

কিন্তু আপনি কি সিনট্যাক্স সম্পর্কে আমাকে সাহায্য করতে পারেন?

উত্তর:


10

Rsync ব্যবহার করুন:

rsync -a --exclude=logs --exclude=log from/ to/

রাইএনসি কিন্ডা আমার জন্য দুর্দান্ত কাজ করেছেন!
— মিশেল 18

আরএসএনসি এখন আমার নতুন বন্ধু :) ধন্যবাদ, ব্যাখ্যাটি ঝরঝরে
— আলেক্স 26'14

2

আমি মনে করি আপনি এর মতো কিছু খুঁজছেন:

find dir -type d ! \( -name 'log' -o -name 'logs' \) | xargs -I{} cp -R {} /www/test2/{}

@ স্পটনিক আমার পরিবর্তনগুলি দেখুন। আপনার যদি এটির কিছু জানা থাকে তবে এ জন্য নির্দ্বিধায় ইম্যাক্স রেগেক্স অফার করুন।
— টিম পোট

0

যদি ব্যবহার করা হয় :

shopt -s extglob
cp -R test/!(log|logs) /www/test2

Http://wiki.bash-hackers.org/syntax/ Pattern দেখুন


কি হবে কাঠামো তাই মত হল: test/someotherdir/logs? ওপি কখনও বলেনি logএবং logsদ্বিতীয় সর্বোচ্চ ডিরেক্টরি ছিল।
— টিম পোট

আপনি যদি ওপি কমান্ড find ~test -not -name logs,logলগ এবং পুনরায় পড়েন তবে লগগুলি একটি সাব-ডির হওয়া উচিত।
— গিলস কুইনট

findসমস্ত উপ-ডিরেক্টরি মাধ্যমে পুনরাবৃত্তভাবে তাকান । ফাইল গ্লোববিং করে না। কাজ আপনার উত্তরের জন্য, logএবং logsহতে হবে অবিলম্বে উপ-ডিরেক্টরি test।
— টিম পোট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.