সিপি কমান্ড দিয়ে কোন ফাইলগুলি অনুলিপি করা হবে তা কীভাবে পরীক্ষা করবেন?


11

আমি একটি সাধারণ স্ক্রিপ্ট তৈরি করছি যা DIRECTORYA থেকে সমস্ত ফাইল অনুলিপি করে যা DIRECTORYB তে নেই। আমি সিপি কমান্ড ব্যবহার করে এটি করছি:

cp -u DIRECTORYA/* DIRECTORYB

আমি যা করতে চাই তা হ'ল প্রশাসকের কাছে একটি ইমেলও প্রেরণ করা হবে যা অনুলিপি করা ফাইলগুলি তালিকাভুক্ত করবে।

সুতরাং আদর্শ হিসাবে, আমি উপরের কমান্ডটি চালানোর আগে, আমি আমার ইমেল বার্তাটি তৈরি করার সময় ফাইলগুলি অনুলিপি করে অনুলিপিটিতে পরে ব্যবহারের জন্য সংরক্ষণ করতে চাই।

কেউ কি আমাকে সঠিক দিকে নির্দেশ করতে পারে? আমি গ্রিপ ব্যবহার করে দেখেছি কিন্তু সিপি কমান্ড দিয়ে এটি করা যায় বলে আমি মনে করি না?


1
হতে পারে আমি আপনার প্রশ্নের ভুল বোঝাবুঝি করছি, কিন্তু -vফাইলের নামগুলি অনুলিপি করার সাথে সাথে আপনি কী পতাকাটি ব্যবহার করতে পারবেন না ? এটি কোনও ফাইলে বা সরাসরি কোনও ভেরিয়েবলে পুনর্নির্দেশ করুন এবং আপনার বার্তাটি তৈরি করতে এটি ব্যবহার করুন।
থাইবাটরেনাক্স

অতিরিক্তভাবে cpকমান্ডটিতে বিকল্প রয়েছে --attributes-onlyযা ফাইলগুলির ডেটা অনুলিপি করার অনুমতি দেয় না, কেবল ডিরেক্টরি এবং ফাইল কাঠামো।
কস্টাস

দুঃখিত আমি স্ক্রিপ্টিং এ মোটামুটি নতুন। যদি আমি -v পতাকা ব্যবহার করি তবে আমি কীভাবে কোনও ফাইলের পরিবর্তে চলকটিতে আউটপুট দেব?
জেমস

1
ধরে নিচ্ছি আপনি ব্যাশ ব্যবহার করছেন, variable=$(cp -v ...)সিপির স্টাডাউটকে ক্যাপচার করে। দেখুন gnu.org/software/bash/manual/html_node/Command-Substitution.htm
Gowtham

উত্তর:


4

আমি মনে করি না জিএনইউর cpআপনাকে সাহায্য করার জন্য কিছু আছে যদি আপনি দেখতে চান অভিনয় না করে এটি কী করবে। আপনি যদি সংশোধিত ফাইলগুলি লগ করতে চান তবে আপনি -vবিকল্পটি ব্যবহার করতে পারেন :

cp -puv DIRECTORYA/* DIRECTORYB >copy.log

পরিবর্তে cp, আপনি আরএসসিএনসি ব্যবহার করতে পারেন , এটি নিম্ন-এম্বেড এম্বেডেড সিস্টেমগুলি (এবং এটি ডিফল্টরূপে উপস্থিত নেই এমন জায়গায় ইনস্টল করা সহজ) ব্যতীত প্রায় সব জায়গাতেই অনেক বেশি শক্তিশালী এবং ইনস্টলড।

rsync -aun DIRECTORYA/* DIRECTORYB >what-would-be-done.txt

অথবা

rsync -auv DIRECTORYA/* DIRECTORYB >copy.log

3

ম্যানুয়াল পৃষ্ঠা অনুসারে ,

-u, কেবল তখনই অনুলিপি করুন যখন SOURCE ফাইলটি গন্তব্য ফাইলের চেয়ে নতুন হয় বা যখন গন্তব্য ফাইলটি অনুপস্থিত থাকে--update

এটি এমন একটি বৈশিষ্ট্য যা দুটি পরীক্ষার সংমিশ্রণ করে, একটি স্ক্রিপ্টে প্রয়োগ করার জন্য একটি তুচ্ছ ( অনুপস্থিত ) এবং একটিতে কিছু কাজের প্রয়োজন হয় ( নতুন )। আপনি কোনো স্ক্রিপ্ট রিপোর্ট ব্যবহার কী প্রয়োজন বানাতে পারে comm, diffএবং test

স্ট্যান্ডার্ড cpইউটিলিটিগুলির কোনওটিই একটি অনুলিপি অপারেশন শুকিয়ে চালানোর ক্ষমতা সরবরাহ করে না। প্রস্তাবিত হিসাবে, rsyncএকটি সাধারণ-উপলভ্য ইউটিলিটি সহ এটি করার উপায়। অবশ্যই, rsyncকেবলমাত্র নতুন বা অনুপস্থিত (ফাইলের আকার এবং টাইমস্ট্যাম্পগুলিও ব্যবহৃত হয়) এর চেয়ে বেশি মানদণ্ডের ভিত্তিতে অনুলিপি করতে ব্যবহৃত হয়। তবে এটি স্রেফ করার ক্ষেত্রে হ্রাস করা যেতে পারে cp -u

মানহীন ইউটিলিটিগুলির জন্য, copy1980 এর দশকের শেষের দিকে আমি যে ইউটিলিটি লিখেছিলাম (এবং অবশ্যই এখনও ব্যবহার করি) তা এখানে রয়েছে। এটি সম্ভবত makeইউটিলিটি দ্বারা অনুপ্রাণিত হয়েছিল , যেহেতু আমি যুক্ত প্রথম বিকল্প ছিল -n

প্রদত্ত উদাহরণের জন্য এটি ব্যবহার করা হবে:

$ copy -nvU DIRECTORYA/* DIRECTORYB
** copy DIRECTORYA/foo to DIRECTORYB/foo
** 1 file would be copied, 616 bytes

আরও পড়া:

  • অনুলিপি - ফাইল / ডিরেক্টরি অনুলিপি

    -n ফাইলগুলির প্রকৃত সৃষ্টি বা পরিবর্তনটি অক্ষম করে এবং (ভার্বোসনেসের স্তরের উপর নির্ভর করে) copy কমান্ডের প্রভাবটি দেখায় ।
    -u ফাইলগুলির আকার বা পরিবর্তনের তারিখ পৃথক হলেই অনুলিপি করে এবং লিঙ্ক-পাঠ্য পৃথক হলে লিঙ্কগুলিই।
    -U গন্তব্যের চেয়ে নতুন যে ফাইলগুলি গন্তব্যস্থলে বিদ্যমান নয় কেবল অনুলিপি করে।

  • 1988 আগস্ট থেকে চেঞ্জলগ এন্ট্রি :

    1988-08-16    
            * src / copy / src / copy.c: "-d" এবং "-n" বিকল্প যুক্ত করা হয়েছে।
    

2

আপনি যদি দৌড়াতে চান cp foo*bar whatever, তবে echo foo*bar whateverপরিবর্তে চালান ।


1
তবে ওপি চালাতে চায় cp -uএবং সে সিপি-র জন্য ড্রাই-রানের মতো বিকল্প খুঁজছে।
আরকাদিউস দ্রবকিজিক

0

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

diff /file1/ /file2/

এবং অবশ্যই যদি আপনি তাদের ব্যবহারের অনুলিপি করতে চান:

cp -u /file1/* /file2

0

পরিবর্তে rsync ব্যবহার বিবেচনা করুন। Rsync স্থানীয় অনুলিপিগুলিতে পুরোপুরি ভাল কাজ করে এবং আপনি যা পনেরো গাজিলিয়ন বিকল্প ব্যবহার করে একবারে চান তা করতে পারেন।

rsync -avun DIRECTORYA/ DIRECTORYB

আপনাকে যা করতে হবে তা সব দেখাবে এবং and

rsync -avu DIRECTORYA/ DIRECTORYB

এটা করবো.

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.