Kopiuj pliki bez utraty uprawnień do plików / folderów

36

Jak mogę skopiować pliki / foldery z komputera z systemem Ubuntu w systemie plików ext4 na inny komputer z systemem Ubuntu, który również jest w systemie plików ext4, za pomocą pamięci USB, która korzysta z systemu plików VFAT bez utraty uprawnień do plików?

Wypróbowałem podstawowy ctrl-c z komputera źródłowego, następnie ctrl-v na usb, następnie ctrl-c z usb, a następnie ctrl-v na komputer docelowy i żadne z uprawnień do plików / folderów nie pozostaje nietknięte.

oshirowanen
źródło
vfatnie obsługuje uprawnień systemu plików Unix. Będziesz musiał przechowywać je w archiwum lub czegoś podobnego, jeśli chcesz je zachować.
Alex L.,
dlaczego nie rsync, jak zasugerowałem?
SiddharthaRT,

Odpowiedzi:

56

Możesz utworzyć archiwum tar źródła, skopiować je na inny komputer za pomocą napędu USB i tam wyodrębnić. Tar zachowuje uprawnienia do plików.

1 - Na komputerze źródłowym:

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

2 - Skopiuj put_your_name_here.tar.gzna dysk USB, a następnie na inny komputer

3 - Na komputerze docelowym:

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

tar odtworzy zarchiwizowaną strukturę folderów z nienaruszonymi wszystkimi uprawnieniami.

Te polecenia zarchiwizują zawartość folderu źródłowego, a następnie wyodrębnią je do folderu docelowego. Jeśli chcesz skopiować sam folder, powinieneś w kroku 1:

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

Ten sam mechanizm można zastosować do pojedynczych plików.


Jeśli możesz połączyć się z jednego komputera do drugiego za pomocą ssh, @siddharthart answer ( rsync) może być bardziej praktyczne.

sierrasdetandil
źródło
Nie zapomnij -pflagi, taraby zapewnić zachowanie uprawnień.
haziz 5.12
@haziz Właściwie -pto nie jest tak naprawdę potrzebne, zobacz mój komentarz do @ mikewhokolwiek odpowiedzi. Nie -zjest również konieczne podczas rozpakowywania, ponieważ tarjest w stanie ustalić sam rodzaj kompresji, chyba że jest to stara wersja. Włączenie flag do polecenia nie boli, trudne.
sierrasdetandil
3
Nie sądzę, że możesz liczyć na to zachowanie. BTW cytowanie ze strony man tar „-p, --preserve-permissions, --same-permissions wyodrębnia informacje o uprawnieniach do plików (domyślnie dla superużytkownika)” wydaje się, że jest to zachowanie domyślne tylko wtedy, gdy tar zostanie zablokowany jako superużytkownik. Nie liczyłbym na to jako zachowanie domyślne. Zawsze też jawnie przeliterowałem -zflagę podczas kompresji lub dekompresji (lub -jprzy użyciu bzip2).
haziz
Czy można łatwo dodać (podstawowe) szyfrowanie? (Wydaje mi się, że byłoby na to wiele sposobów, ale zastanawiam się, ale jeśli zrobiono by to z wiersza poleceń, w jaki sposób można by podać hasło / klucz szyfrujący / hasło? Tak jak ******** lub jak hasło sudo, gdzie nie są widoczne żadne uderzenia klawiszy?)
Oszalały o natty
tarma bardzo poważny problem - dusi się na ścieżkach dłuższych niż 100 znaków.
Nathan Osman,
12

Możesz spróbować rsyncz -aflagą, aby zachować wszystkie uprawnienia podczas kopiowania. Nie znam prostszego rozwiązania, ale korzystałem z niego w przeszłości.

Rsync zapewnia doskonałe wsparcie dla wielokrotnego kopiowania, aktualizowania folderów itp., Pozostając niezwykle szybkim.

SiddharthaRT
źródło
6
Podoba mi się rsync(uwielbiam, w rzeczywistości: -]), ale uprawnienia do pliku ext4 zostaną utracone, jeśli urządzenie docelowe zostanie sformatowane w formacie vfat, jak opisano w oshirowanen. W tartym przypadku rozwiązanie jest lepsze.
yuric
6

Uważam, że tarowanie, a następnie kasowanie powinno działać zarówno na plikach, jak i katalogach.

tar:

tar cvpfz /target.tar.gz /source/

rozpakować:

tar xvpfz /source/

pFlaga oznacza --preserve-permissions.

Powinieneś zobaczyć man tarpo więcej informacji.

mikewhthing
źródło
Właśnie zrobiłem szybki test, aby się upewnić i -pnie jest potrzebny - tar domyślnie zachowuje uprawnienia, przynajmniej wtedy, gdy użytkownik jest właścicielem archiwizowanych / rozpakowywanych plików.
sierrasdetandil
2
To prawda, ale nie powiedziałeś nam, jakie pliki chcesz skopiować, a ja nie miałem powodu, by zakładać cokolwiek samodzielnie.
mikewhthing