คัดลอกไฟล์โดยไม่สูญเสียสิทธิ์ของไฟล์ / โฟลเดอร์


36

ฉันจะคัดลอกไฟล์ / โฟลเดอร์จากคอมพิวเตอร์ ubuntu บนระบบไฟล์ ext4 ไปยังคอมพิวเตอร์ ubuntu อื่นซึ่งยังอยู่ในระบบไฟล์ ext4 โดยใช้ usb stick ซึ่งใช้ระบบไฟล์ vfat โดยไม่สูญเสียสิทธิ์การใช้ไฟล์

ฉันได้ลอง ctrl-c พื้นฐานจากคอมพิวเตอร์ต้นทางแล้ว ctrl-v เป็น usb จากนั้น ctrl-c จาก usb แล้ว ctrl-v ไปยังคอมพิวเตอร์เป้าหมายและไม่มีการอนุญาตของไฟล์ / โฟลเดอร์เหมือนเดิม


vfatไม่รองรับสิทธิ์ระบบไฟล์ยูนิกซ์ คุณจะต้องเก็บมันไว้ใน tarball หรือสิ่งที่คล้ายกันถ้าคุณต้องการที่จะเก็บไว้
Alex L.

ทำไมไม่rsyncตามที่ฉันแนะนำ
SiddharthaRT

คำตอบ:


56

คุณสามารถสร้างไฟล์เก็บถาวร tar ของแหล่งที่มาคัดลอกไปยังคอมพิวเตอร์เครื่องอื่นโดยใช้ไดรฟ์ USB และแตกไฟล์นั้นได้ ทาร์รักษาสิทธิ์ของไฟล์

1 - บนคอมพิวเตอร์ต้นทาง:

cd /path/to/folder/to/copy
tar cvpzf put_your_name_here.tar.gz .

2 - คัดลอกput_your_name_here.tar.gzไปยังไดรฟ์ USB แล้วไปยังคอมพิวเตอร์เครื่องอื่น

3 - บนคอมพิวเตอร์ปลายทาง:

cd /path/to/destination/folder
tar xpvzf put_your_name_here.tar.gz

tar จะสร้างโครงสร้างโฟลเดอร์ที่เก็บถาวรใหม่โดยมีสิทธิ์ทั้งหมดไม่เปลี่ยนแปลง

คำสั่งเหล่านั้นจะเก็บถาวรเนื้อหาของโฟลเดอร์แหล่งที่มาแล้วแยกออกเป็นโฟลเดอร์ปลายทาง หากคุณต้องการคัดลอกโฟลเดอร์เองคุณควรทำตามขั้นตอนที่ 1:

cd /path/to/parent/folder
tar cvpzf put_your_name_here.tar.gz folder_to_copy

กลไกเดียวกันสามารถใช้กับไฟล์เดียวได้


หากคุณสามารถเชื่อมต่อจากคอมพิวเตอร์เครื่องหนึ่งไปยังอีกเครื่องหนึ่งโดยใช้ssh@siddharthart answer ( rsync) อาจเป็นประโยชน์มากกว่า


อย่าลืม-pตั้งค่าสถานะเพื่อtarให้แน่ใจว่าการอนุญาตถูกสงวนไว้
haziz

@haziz ที่จริงแล้ว-pไม่จำเป็นจริงๆดูความเห็นของฉันต่อคำตอบของ @ mikewhething -zยังไม่ได้เป็นสิ่งที่จำเป็นเมื่อ untarring เช่นtarสามารถที่จะคิดออกประเภทของการบีบอัดตัวเองนอกจากจะเป็นรุ่นเก่า การรวมค่าสถานะในคำสั่งไม่ทำให้เจ็บ
sierrasdetandil

3
ฉันไม่คิดว่าคุณจะเชื่อในพฤติกรรมนี้ได้ การอ้างอิง BTW จากหน้า man tar "-p, --preserve-permission, --same-permission จะแยกข้อมูลเกี่ยวกับการอนุญาตไฟล์ (ค่าเริ่มต้นสำหรับ superuser)" สิ่งนี้ดูเหมือนจะเป็นพฤติกรรมเริ่มต้นเฉพาะในกรณีที่ tar ถูกเรียกใช้เป็น superuser จะไม่นับว่าเป็นพฤติกรรมเริ่มต้น ฉันจะสะกดคำ-zแฟล็กอย่างชัดเจนตลอดเวลาเมื่อทำการบีบอัดหรือคลายการบีบอัด (หรือ-jถ้าใช้ bzip2)
haziz

สามารถเพิ่มการเข้ารหัส (พื้นฐาน) ได้อย่างง่ายดายหรือไม่? (ฉันเดาว่ามีหลายวิธีในการทำเช่นนั้น แต่ฉันสงสัย แต่ถ้าทำผ่านบรรทัดคำสั่งจะจัดหารหัสผ่าน / คีย์เข้ารหัส / วลีรหัสผ่านอย่างไรเช่นนั้น ******** หรือ เช่นเดียวกับรหัสผ่าน sudo ซึ่งไม่มีการกดปุ่มใด ๆ ปรากฏให้เห็น)
nutty about natty

tarทนทุกข์ทรมานจากปัญหาที่ร้ายแรงมาก - มันฉายาบนเส้นทางที่ยาวกว่า 100 ตัวอักษร
Nathan Osman

12

คุณสามารถลองrsyncด้วยการ-aตั้งค่าสถานะเพื่อรักษาสิทธิ์ทั้งหมดในขณะที่คัดลอก ฉันไม่ทราบวิธีแก้ปัญหาที่ง่ายกว่านี้ แต่ฉันเคยใช้เพื่อจุดประสงค์ในอดีต

Rsync ให้การสนับสนุนที่ยอดเยี่ยมในการคัดลอกซ้ำอัปเดตโฟลเดอร์และอื่น ๆ ในขณะที่เหลืออย่างรวดเร็ว


6
ฉันชอบrsync(รักจริง: -]) แต่การอนุญาตไฟล์ ext4 จะหายไปหากอุปกรณ์ปลายทางได้รับการจัดรูปแบบ vfat เหมือนที่ oshirowanen อธิบาย การtarแก้ปัญหาจะดีกว่าในกรณีนี้
yuric

6

ฉันคิดว่าการฝึกฝนแล้วการฝึกฝนควรทำงานได้ทั้งไฟล์และไดเรกทอรี

เพื่อ tar:

tar cvpfz /target.tar.gz /source/

เพื่อ untar:

tar xvpfz /source/

ธงย่อมาจากp--preserve-permissions

คุณควรดูman tarข้อมูลเพิ่มเติม


ฉันเพิ่งทำการทดสอบอย่างรวดเร็วเพื่อให้แน่ใจและ-pไม่จำเป็น - tar รักษาสิทธิ์ตามค่าเริ่มต้นอย่างน้อยที่สุดเมื่อผู้ใช้เป็นเจ้าของไฟล์ที่ถูกเก็บถาวร / แยก
sierrasdetandil

2
จริง แต่คุณไม่ได้บอกเราว่าไฟล์ที่คุณต้องการคัดลอกและฉันไม่มีเหตุผลที่จะคิดอะไรด้วยตัวเอง
mikewhatever
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.