අයිතිකරුවන් සහ අවසරයන් නොවෙනස්ව පවතින ෆෝල්ඩරයක් පිටපත් කරන්නේ කෙසේද?


414

එබැවින් මම මගේ නිවසේ ෆෝල්ඩරය බාහිර ධාවකයකට පිටපත් කර එය උපස්ථ කිරීමට යන්නේ:

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

ප්‍රති drive ලය සමඟ බාහිර ධාවකවල ඇති සියලුම ෆෝල්ඩර දැන් අයිති root:rootවේ. cpඑහි හිමිකාරිත්වය සහ අවසරයන් මුල් පිටුවෙන් තබා ගන්නේ කෙසේද ?


26
ඔව්, ඔහු ඇසීම ගැන මට සතුටුයි, මන්ද ගූගල් තවමත් 'මිනිසා' ට වඩා වේගවත් ය :-).
ස්ටිජන් ජියුකන්ස්

3
ඔහුත්
ඔලේ

6
@StijnGeukens එය ගූගල් වේගවත් බව පවා නොවේ, එය manමට පවා ගුප්ත ය. මෙම අවස්ථාවේ දී, manat -rපවසයි same as --preserve=mode,ownership,timestamps. මම දැනගත්තේ කොහොමද ඒ කියන්නේ මුල් අවසරයන් තියාගන්න!?
කොලොබ් කැනියොන්

@ කොලොබ් කැනියන් ඔබ අදහස් කළේ-p
කුණාටුව

Answers:


500
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

142
භාවිතා කිරීමට වඩා හොඳය cp -a. මෙයට ද -rධජ ධජය ඇතුළත් වේ , නමුත් එය ඊට වඩා වැඩි යමක් කරයි - එය ගොනුව පිළිබඳ සියල්ල ආරක්ෂා කරයි; SELinux ගුණාංග, සබැඳි, xattr, සියල්ල. එය "සංරක්ෂිත මාදිලිය" වේ. උපස්ථ කිරීම සඳහා වඩා හොඳ මෙවලම් ඇත, නමුත් නම් ඔබ භාවිතා cpරක්ෂිත සඳහා හැර වෙනත් කිසිම දෙයක් පාවිච්චි කරන්නේ නැහැ cp -a.
වයිල්ඩ්කාඩ්

26
එය ක්‍රියාත්මක වේ, නමුත් මෙහි ඉවසීම හොඳයි. විධානය මඟින් සියල්ල නිවැරදි වන්නේ එය අවසන් වූ විට පමණි: එය තවමත් ඩිරෙක්ටරියක් පිටපත් කරන අතර ඔබ cp root ලෙස ධාවනය කරන අතරම, ඩිරෙක්ටරිය root සතු වේ. එය එය නිවැරදි නාමාවලියට සැකසෙන්නේ එය මෙම නාමාවලිය සමඟ අවසන් වූ විට පමණි.
පෝල්

5
cp -aසමහර පද්ධති වල ක්‍රියා නොකරයි: උදා: OS X, (සමහර අනුවාදවල අවම වශයෙන්) එකක් භාවිතා කිරීමට අවශ්‍ය වේ cp -pR. මගේ වර්තමාන OS X පද්ධතියේ (10.10.15) cp -aගෞරවයට පාත්‍ර වූ බව පෙනේ.
dubiousjim

ෆෝල්ඩර ව්‍යුහයක් පිටපත් කිරීමට මම cp -a භාවිතා කරන්නේ නම්, මම diff <(getfacl -R folder1) <(getfacl -R folder2)ප්‍රතිපත්ති පූජාවන්ට මූලිකත්වය දෙමින් විවිධ ප්‍රවේශ පාලන ලැයිස්තු ලබා ගන්නා බව පෙනේ :(
philx_x

1
Ug ඉයුජින්කොරොව් -ආර් පුනරාවර්තන වේ. එය නොමැතිව ඔබට නාමාවලි පිටපත් කළ නොහැක.
හෙනෝ

99

ඔබට ද භාවිතා කළ හැකිය rsync.

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

සිට rsyncmanpage:

 -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තේවලින් එසේ තවත් බොහෝ පොදුවේ මම aliased කර ඇති බව pcpදක්වා time rsync --progress -ah. මගේ මනසෙහි "ප්‍රගති පිටපත" යන්නෙන් අදහස් කෙරේ. දෙකම පිළිගනී -r, එබැවින් එය සාමාන්‍ය පර්යන්ත භාවිතය සඳහා හොඳින් ක්‍රියා කරයි - නමුත් අවාසනාවකට මෙන්, sudoමෙම ප්‍රශ්නයේ / පිළිතුරෙහි පෙන්වා ඇති ආකාරයට සංයුක්ත නොවේ .
ඉස්කාටා

15
සැ.යු :, දීර් rsync -aextended කරන ලද ගුණාංග ( -X) සහ ACLs ( -A) ආරක්ෂා නොකරයි - කෙටි විස්තරය පවසයි archive mode; equals -rlptgoD (no -H,-A,-X). උදා: SELinux සන්දර්භය නොමැතිව කල් තබා ගත නොහැක -X. බොහෝ භාවිත අවස්ථා සඳහා මෙය හොඳයි, නමුත් ඔබ ඔබේ පද්ධති කොටසෙහි උපස්ථයක් කළහොත්, -X අස්ථානගත වීම බොහෝ දුරට කැඩී යා හැක. මා දන්නා පරිදි, cp -aසියලුම ගොනු ගුණාංග සැබවින්ම ආරක්ෂා කරයි.
පර්සයිඩ්

2
මෙය පරීක්‍ෂා කර බැලූ විට, sudo cp -aහිමිකාරිත්වය සහ කණ්ඩායම් ආරක්ෂා කරන අතරම sudo rsync -aඒවා මූලයට වෙනස් කරයි. එබැවින් erPerseids නිවැරදි ය.
ජෝන් හැමිල්ටන්

3
@ ජෝන් හැමිල්ටන් යටතේ, මෙය මනාව ක්‍රියාත්මක වේ ... එය පසුව හිමිකාරිත්වය සහ කණ්ඩායම් පමණක් වෙනස් කරයි (කවදාදැයි මට කිව නොහැක). මම මගේ මුළු /homeෆෝල්ඩරයම පිටපත් කර ඇති rsync -aX /home /mnt/sdd/අතර එය චමත්කාරජනක ලෙස ක්‍රියා කර ඇත.
ඔලිවියර් පොන්ස්

1
@ ජෝන් හැමිල්ටන් එය පර්සයිඩ්ස් කිසිසේත් කී දෙයක් නොවේ.
user643011

68
cp -a

කොහේද -aකෙටි --archive- මූලික වශයෙන් එය නාමාවලියක් හරියටම පිටපත් කරයි; ලිපිගොනු ඒවායේ සියලුම ගුණාංග රඳවා තබා ගන්නා අතර, සිම්ලින්ක් අවලංගු කර නොමැත ( -d).

සිට man cp:

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

21

මම භාවිතා cp -pdRxකරන -p, ක්රමය, අයිතිය සහ timestamps ආරක්ෂා -d(ඔබ විසින් පිටපත් ගොනුවේ අන්තර්ගතයන් වෙනුවට symlinks ලබා නිසා) සබැඳි ආරක්ෂා, -Rඇත්තෙන් වෙනසට භාජනය ඒක කරන්න සහ -xඑක් ගොනු පද්ධතිය (පමණක් ඇත්තටම ප්රයෝජනවත් ඔයා තමයි පිටපත් නම් මත රැඳී /ක්රියාකාරී අග්රය හෝ දෙයක් ).

PS: -Rඒ වෙනුවට භාවිතා කිරීම -rපුරුද්දක් ls -lR.


3
cp -axඑකම දෙයක තරමක් කෙටි අනුවාදයකි. මෙය විශිෂ්ටයි - ස්තූතියි!
ඊඑම් 0

ඇත්ත වශයෙන්ම -rසහ අතර වෙනසක් ඇත -R. මෑන් පිටුව පරීක්ෂා කරන්න (විශේෂිත කොටස පවා මෙහි උපුටා දැක්වීමට තරම් දිගු නොවේ).
geckon

4
මම හිතන්නේ නැහැ (වරක් යුනික්ස් හි සමහර සංස්කරණවල තිබුනත් තවමත් තිබිය හැක). Man7.org/linux/man-pages/man1/cp.1.html බලන්න එය සරලව පවසයි -R, -r, --recursive copy directories recursively.
StarNamer

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.

12

ඔබට මේ වගේ දෙයක් කළ හැකිය:

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

tarඅවසර, හිමිකාරිත්වය සහ නාමාවලි ව්‍යුහය නොවෙනස්ව තබා ගනී, නමුත් සියල්ල බයිට් ප්‍රවාහයක් බවට පරිවර්තනය කරයි. ඔබ ඩිරෙක්ටරිය වෙනස් කරන "උප-ෂෙල්" (වරහන් කළ විධාන) ධාවනය කර, පසුව tarපරිවර්තනය ආපසු හැරවිය යුතුය. බයිට් වල වාෂ්ප නිවැරදි හිමිකාරිත්වය සහ අවසරයන් සහිත නාමාවලි සහ ලිපිගොනු බවට පත්වේ.


වෙනත් පිළිතුරු යෝජනා tarකරන cp -rpපරිදි භාවිතා කිරීම සහ භාවිතා කිරීම අතර වෙනසක් තිබේද?
lucidbrot

1
@lucidbrot - සංකේතාත්මක සබැඳි හෝ වෙනත් විශේෂ ලිපිගොනු හැසිරවීම, සමහර ගොනු පද්ධතිවල දීර් extended ගුණාංග හැසිරවීම හෝ විරල ලිපිගොනු සමඟ කටයුතු කරන ආකාරය - මම සිතන්නේ tarහා cp -rpවෙනස් වන්නේ කෙළවරේ පමණි.
ru ස් එඩිගර්

8

පිළිතුර සරලයි: අවසර ආරක්ෂා cpකරන -pවිකල්පයක් ඇත (මෙන්න මාළුවෙක්).

වොජ්ටෙක් සිය අදහස් දැක්වීමේදී පවසන පරිදි man cp(සියුම් අත්පොත කියවීම) හොඳ ආරම්භක ස්ථානයක් වනු ඇත (මසුන් ඇල්ලීමට ඉගෙන ගැනීමට අවශ්‍යද?).


3

ඔබට preserve = සියල්ලම භාවිතා කළ හැකිය, එවිට ඔබේ පිටපත මඟින් ඔබේ ලිපිගොනු වල හිමිකරු, කණ්ඩායම සහ කාලරාමුව වැනි සියලුම ගුණාංග තබා ගනී. එබැවින්, පහත දැක්වෙන විධානය සමඟ ඔබේ උපස්ථය ආරක්ෂිතව කරන්න.

cp -r --preserve=all /home/my_home /media/backup/my_home
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.