আমি কীভাবে কোনও ফোল্ডার মালিকদের এবং অনুমতিগুলি অক্ষত রেখে অনুলিপি করব?


376

সুতরাং আমি আমার বাড়ির ফোল্ডারটি নীচে বাইরের ড্রাইভে অনুলিপি করে ব্যাক আপ করতে যাচ্ছিলাম:

sudo cp -r /home/my_home /media/backup/my_home

ফলস্বরূপ যে বাহ্যিক ড্রাইভে সমস্ত ফোল্ডার এখন মালিকানাধীন root:root। আমি কীভাবে cpআসল থেকে মালিকানা এবং অনুমতিগুলি রাখতে পারি ?


23
হ্যাঁ, এটি জিজ্ঞাসা করে আমি খুশি হব কারণ গুগল এখনও 'মানুষ' :-) এর চেয়ে দ্রুত faster
স্টিজন গিউকেনস

3
আমি খুব খুশি সে খুব জিজ্ঞাসা করেছে
ওলে

5
@ স্টিজনগুকেনস এমনকি এটি গুগলও দ্রুত নয়, এটি manআমার কাছেও রহস্যজনক। এই ক্ষেত্রে, man-rবলা same as --preserve=mode,ownership,timestamps। কীভাবে আমার জানার কথা ছিল যে এর অর্থ আসল অনুমতিগুলি রাখুন !?
কলব ক্যানিয়ন

@ কলবক্যানিয়ন আপনার অর্থ-p
ঝড়

উত্তর:


452
sudo cp -rp /home/my_home /media/backup/my_home

সিপি ম্যানপেজ থেকে:

 -p     same as --preserve=mode,ownership,timestamps

 --preserve[=ATTR_LIST]
          preserve the specified attributes (default: mode,ownership,timestamps),
          if possible additional attributes: context, links, xattr, all

128
ব্যবহার করা অনেক ভাল cp -a-rএটিতে অভিজাত পতাকাও অন্তর্ভুক্ত রয়েছে তবে এটি এর চেয়ে বেশি কিছু করে — এটি ফাইল সম্পর্কে সমস্ত কিছু সংরক্ষণ করে; সেলিনাক্স বৈশিষ্ট্য, লিংক, এক্সএটিআর, সবকিছু। এটি "সংরক্ষণাগার মোড"। ব্যাকআপ তৈরির জন্য আরও ভাল সরঞ্জাম রয়েছে তবে আপনি যদিcp ব্যাকআপের জন্য ব্যবহার করেন তবে ব্যতীত অন্য কিছু ব্যবহার করবেন না cp -a
ওয়াইল্ডকার্ড

24
এটি কাজ করে তবে ধৈর্য এখানে ভাল। কমান্ডটি সমস্ত কিছুই ঠিক করে দিবে যখন এটি শেষ হবে: এটি এখনও একটি ডিরেক্টরি অনুলিপি করে চলেছে এবং আপনি সিপিটি মূল হিসাবে চালাচ্ছেন, ডিরেক্টরিটি রুটের মালিকানাধীন থাকবে। এই ডিরেক্টরিটি শেষ হলে এটি কেবল সঠিক অনুমতিগুলিতে সেট করবে।
পল

4
cp -aকিছু সিস্টেমে কাজ করে না: যেমন ওএস এক্স, যেখানে (কমপক্ষে কিছু সংস্করণে) ব্যবহারের প্রয়োজন cp -pR। আমার বর্তমান ওএস এক্স সিস্টেমে যদিও (10.10.15) cp -aসম্মানিত বলে মনে হচ্ছে।
dubiousjim

আমি যদি ফোল্ডারের কাঠামো অনুলিপি করতে সিপি -এ ব্যবহার diff <(getfacl -R folder1) <(getfacl -R folder2)করি তবে আই সিল ব্যবহার করে বিভিন্ন অ্যাক্সেস নিয়ন্ত্রণের তালিকা পাওয়া যাবে বলে মনে হয় :(
ফিলস_এক্স

কেন আপনি "সিপি-পিপি" না, "সিপি-পিপি" ঠিক বলেছেন?
ইউজিন কৌরভ

94

আপনি ব্যবহার করতে পারেন rsync

sudo rsync -a /home/my_home/ /media/backup/my_home/

rsyncম্যানপেজ থেকে :

 -a, --archive
              This  is  equivalent  to  -rlptgoD.  It  is a quick way of saying you want
              recursion and want to preserve almost everything (with -H being a  notable
              omission).    The   only  exception  to  the  above  equivalence  is  when
              --files-from is specified, in which case -r is not implied.

              Note that -a does not preserve hardlinks, because finding  multiply-linked
              files is expensive.  You must separately specify -H.

cpএবং rsync: https://stackoverflow.com/q/6339287/406686 এর মধ্যে তুলনার জন্য এই প্রশ্নটি দেখুন

ট্রেলিং স্ল্যাশগুলি দ্রষ্টব্য (বিশদটির জন্য ম্যানপেজ দেখুন)।


4
+1 টি, cp -pচমৎকার, কিন্তু আমি চাই rsyncআউটপুট এত সাধারণ আরও যে আমি ওরফে থাকেন 'র pcpকাছে time rsync --progress -ah। আমার মনে "অগ্রগতি অনুলিপি" জন্য দাঁড়িয়েছে। এবং উভয়ই গ্রহণ করে -r, সুতরাং এটি সাধারণ টার্মিনাল ব্যবহারের জন্য ভাল কাজ করে - তবে দুর্ভাগ্যক্রমে, sudoএই প্রশ্ন / উত্তরের সাথে মিলিতভাবে নয়।
ইজকাটা

15
এনবি rsync -a:, বর্ধিত বৈশিষ্ট্য ( -X) এবং কোনও এসিএল ( -A) সংরক্ষণ করে না - সংক্ষিপ্ত বিবরণে বলা হয়েছে archive mode; equals -rlptgoD (no -H,-A,-X)। যেমন SELinux- র প্রেক্ষিতে ছাড়া preserverd করা হইনি -X। অনেকগুলি ব্যবহারের ক্ষেত্রে এটি ঠিক আছে তবে আপনি যদি আপনার সিস্টেম পার্টিশনের ব্যাকআপ নেন তবে অনুপস্থিত -X অনেকটা ভেঙে যেতে পারে। আমি যতদূর জানি, cp -aসত্যই সমস্ত ফাইলের বৈশিষ্ট্য সংরক্ষণ করে।
Perseids

2
sudo cp -aমালিকানা এবং গোষ্ঠীগুলি সংরক্ষণ করার সময় এটিকে কেবল পরীক্ষিত হয়েছে, sudo rsync -aএগুলি রুটে পরিণত হয়েছে। সুতরাং, @ পার্সিডস সঠিক।
জন হ্যামিল্টন

3
@ জোহনহ্যামিলটন পুদিনার আওতায়, এটি নিখুঁতভাবে কাজ করে ... এটি কেবল পরে মালিকানা এবং গোষ্ঠীগুলি পরিবর্তন করে (আমি কখন বলতে পারি না)। আমি মাত্র আমার পুরো /homeফোল্ডারটি দিয়ে অনুলিপি করেছি rsync -aX /home /mnt/sdd/এবং এটি একটি কবজির মতো কাজ করেছে।
অলিভিয়ার পন্স

@ জোহনহ্যামিলটন এটি পার্সেইডস মোটেই বলেছেন না।
ব্যবহারকারী 643011

60
cp -a

যেখানে -aসংক্ষিপ্ত --archive- মূলত এটি কোনও ডিরেক্টরিকে ঠিক ঠিক অনুলিপি করে; ফাইলগুলি তাদের সমস্ত বৈশিষ্ট্য বজায় রাখে এবং সিমলিঙ্কগুলি ডিফারেন্স করা হয় না ( -d)।

থেকে man cp:

   -a, --archive
          same as -dR --preserve=all

21

আমি ব্যবহার করি cp -pdRxযা -pমোড, মালিকানা এবং টাইমস্ট্যাম্প -dসংরক্ষণ করবে, লিঙ্কগুলি সংরক্ষণ করবে (যাতে আপনি ফাইলের বিষয়বস্তু অনুলিপি করার পরিবর্তে সিমলিংক পেতে পারেন), -Rএটি পুনরাবৃত্তভাবে করুন এবং -xএকটি ফাইল সিস্টেমে থাকুন (আপনি যদি অনুলিপি করছেন /বা কোনও সক্রিয় মাউন্ট পয়েন্ট সহ কিছু রয়েছে তবেই কার্যকর )।

পিএস: -Rপরিবর্তে -rব্যবহার করা থেকে শুধুমাত্র অভ্যাস ls -lR


2
cp -axএকই জিনিসটির একটি সামান্য সংক্ষিপ্ত সংস্করণ। এটি দুর্দান্ত কাজ করেছে - আপনাকে ধন্যবাদ!
EM0

আসলে -rএবং এর মধ্যে পার্থক্য রয়েছে -R। ম্যান পৃষ্ঠাটি দেখুন (এমনকি নির্দিষ্ট অংশটি এখানে উদ্ধৃত করা খুব দীর্ঘ)।
জেকন

2
আমি মনে করি না এটি আছে (যদিও এটি একবারে থাকতে পারে এবং এখনও ইউনিক্সের কিছু সংস্করণে থাকতে পারে)। Man7.org/linux/man-pages/man1/cp.1.html দেখুন এটি সহজভাবে বলেছে -R, -r, --recursive copy directories recursively
স্টারনামার

14

cpফাইলের মালিকানা সংরক্ষণের একটি বিকল্প রয়েছে। এর ম্যানুয়াল পৃষ্ঠা থেকে cp:

-p    Cause cp to preserve the following attributes of each source file in the copy: modification
      time, access time, file flags, file mode, user ID, and group ID, as allowed by permissions.
      Access Control Lists (ACLs) and Extended Attributes (EAs), including resource forks, will also
      be preserved.

11

আপনি এর মতো কিছু করতে পারেন:

tar cf - my_home | (cd /media/backup; sudo tar xf - )

tarঅনুমতি, মালিকানা এবং ডিরেক্টরি কাঠামো অক্ষত রাখে তবে সবকিছুকে বাইটের প্রবাহে রূপান্তর করে। আপনি একটি "সাবশেল" (প্রথম বন্ধনীযুক্ত কমান্ড) চালনা করেন যা ডিরেক্টরি পরিবর্তন করে এবং তারপরে tarরূপান্তরটি উল্টে যায়। বাইটগুলির একটি বাষ্প সঠিক মালিকানা এবং অনুমতি সহ ডিরেক্টরি এবং ফাইলগুলিতে পরিণত হয়।


7

উত্তরটি সহজ: cpএকটি -pবিকল্প রয়েছে যা অনুমতি সংরক্ষণ করে (এখানে একটি মাছ রয়েছে)।

তবে যেমন ওয়াজেটেক তার মন্তব্যে বলেছেন, man cp(সূক্ষ্ম ম্যানুয়ালটি পড়া) একটি ভাল সূচনা পয়েন্ট হবে (কীভাবে মাছ শিখতে চান?))


1

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

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