Sao chép tệp mà không mất quyền truy cập tệp / thư mục


36

Làm cách nào tôi có thể sao chép tệp / thư mục từ máy tính ubfox trên hệ thống tệp ext4 sang máy tính ub Ubuntu khác cũng có trên hệ thống tệp ext4, sử dụng thanh usb sử dụng hệ thống tệp vfat mà không mất quyền truy cập tệp?

Tôi đã thử ctrl-c cơ bản từ máy tính nguồn, sau đó ctrl-v sang usb, sau đó ctrl-c từ usb rồi ctrl-v đến máy tính mục tiêu và không có quyền truy cập tệp / thư mục nào còn nguyên vẹn.


vfatkhông hỗ trợ quyền hệ thống tập tin unix. Bạn sẽ cần lưu trữ chúng trong một tarball, hoặc một cái gì đó tương tự, nếu bạn muốn bảo quản chúng.
Alex L.

Tại sao không rsync, như tôi đề nghị?
SiddharthaRT

Câu trả lời:


56

Bạn có thể tạo một kho lưu trữ tar của nguồn, sao chép nó sang máy tính khác bằng ổ USB và giải nén nó ở đó. Tar bảo vệ quyền tập tin.

1 - Trên máy tính nguồn:

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

2 - Sao chép put_your_name_here.tar.gzvào ổ USB và sau đó sang máy tính khác

3 - Trên máy tính đích:

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

tar sẽ tạo lại cấu trúc thư mục lưu trữ với tất cả các quyền còn nguyên vẹn.

Các lệnh đó sẽ lưu trữ nội dung của thư mục nguồn và sau đó trích xuất chúng vào thư mục đích. Nếu bạn muốn sao chép chính thư mục đó, thì bạn nên, ở bước 1:

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

Cơ chế tương tự có thể được sử dụng cho các tập tin duy nhất.


Nếu bạn có thể kết nối từ máy tính này sang máy tính khác bằng cách sử dụng ssh, câu trả lời @siddharthart ( rsync) có thể thực tế hơn.


Đừng quên -pcờ tarđể đảm bảo quyền được bảo tồn.
haziz

@haziz Trên thực tế, điều đó -pkhông thực sự cần thiết, hãy xem nhận xét của tôi về câu trả lời của @ mikewhthing. Điều này -zcũng không cần thiết khi hủy ghép nối, như tarcó thể tự tìm ra kiểu nén, trừ khi đó là phiên bản cũ. Bao gồm các cờ trong lệnh không đau, khó khăn.
sierrasdetandil

3
Tôi không nghĩ bạn có thể tin tưởng vào hành vi này. BTW trích dẫn từ trang man tar "-p, --preserve-allow, --same-allow trích xuất thông tin về quyền truy cập tệp (mặc định cho superuser)" đây dường như là hành vi mặc định chỉ khi tar được ngụy trang dưới dạng superuser. Sẽ không tính đây là hành vi mặc định. Tôi cũng sẽ luôn luôn đánh vần rõ ràng -zcờ khi nén hoặc giải nén (hoặc -jnếu sử dụng bzip2).
haziz

Mã hóa (cơ bản) có thể dễ dàng được thêm vào? (Tôi đoán sẽ có nhiều cách để làm điều đó, nhưng tôi tự hỏi, nhưng nếu được thực hiện thông qua dòng lệnh, mật khẩu / khóa mã hóa / cụm mật khẩu sẽ được cung cấp như thế nào? giống như mật khẩu sudo, trong đó không có nét chữ nào được hiển thị?)
hấp dẫn về sự tự nhiên

tarbị một vấn đề rất nghiêm trọng - nó bị nghẹt trên những con đường dài hơn 100 ký tự.
Nathan Osman

12

Bạn có thể thử rsyncvới -acờ để duy trì tất cả các quyền trong khi sao chép. Tôi không biết về một giải pháp đơn giản hơn, nhưng tôi đã sử dụng nó cho một mục đích trong quá khứ.

Rsync cung cấp hỗ trợ tuyệt vời để sao chép lặp đi lặp lại, cập nhật các thư mục, vv trong khi vẫn nhanh chóng.


6
Tôi thực sự thích rsync(thực sự thích nó: -]), nhưng quyền truy cập tệp ext4 sẽ bị mất nếu thiết bị đích được định dạng vfat, như oshirowanen mô tả. Các targiải pháp tốt hơn trong trường hợp này.
yuric

6

Tôi nghĩ taring và sau đó uning nên hoạt động trên cả các tập tin và thư mục.

để tar:

tar cvpfz /target.tar.gz /source/

để cởi trói:

tar xvpfz /source/

Các plá cờ tượng trưng cho --preserve-permissions.

Bạn nên xem man tarđể biết thêm.


Tôi vừa thực hiện một thử nghiệm nhanh để chắc chắn và -pkhông cần thiết - tar bảo toàn quyền theo mặc định, ít nhất là khi người dùng sở hữu các tệp được lưu trữ / giải nén.
sierrasdetandil

2
Đúng, nhưng bạn đã không cho chúng tôi biết những tập tin bạn muốn sao chép và tôi không có lý do gì để tự mình nhận bất cứ điều gì.
mikewhthing 5/12/12
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.