Копирование файлов без потери прав доступа к файлам/папкам

Как я могу скопировать файлы / папки с компьютера ubuntu в файловой системе ext4 на другой компьютер ubuntu, который также находится в файловой системе ext4, используя USB-накопитель, который использует файловую систему vfat, без потери прав доступа к файлам?

Я попробовал обычный ctrl-c с исходного компьютера, затем ctrl-v на usb, затем ctrl-c с usb, затем ctrl-v на целевой компьютер, и ни одно из прав доступа к файлам / папкам не осталось неизменным.

Вы можете создать архив tar исходного кода, скопировать его на другой компьютер с помощью USB-накопителя и извлечь его оттуда. Tar сохраняет права доступа к файлам.

1 - На исходном компьютере:

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

2 - Копия put_your_name_here.tar.gz на USB-накопитель, а затем на другой компьютер

3 - На целевом компьютере:

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

tar будет воссоздана структура архивированных папок с сохранением всех разрешений.

Эти команды будут архивировать содержание из исходной папки, а затем извлеките их в папку назначения. Если вы хотите скопировать саму папку, то вам следует на шаге 1:

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

Тот же механизм можно было бы использовать для отдельных файлов.


Если вы можете подключиться с одного компьютера на другой с помощью ssh, ответ @siddharthart (rsync) может быть более практичным.

Вы могли бы попробовать rsync с -a установите флажок для сохранения всех разрешений при копировании. Я не знаю более простого решения, но в прошлом я использовал его для определенной цели.

Rsync обеспечивает блестящую поддержку повторного копирования, обновления папок и т.д. оставаясь при этом невероятно быстрым.

Я думаю, что тарирование, а затем отключение должно работать как с файлами, так и с каталогами.

в смолу:

tar cvpfz /target.tar.gz /source/

в унтар:

tar xvpfz /source/

То p флаг означает --preserve-permissions.

Вы должны увидеть man tar для получения дополнительной информации.

vfat не поддерживает разрешения файловой системы unix. Вам нужно будет хранить их в хранилище или во что-то подобное, если вы хотите сохранить их.

почему бы не “rsync”, как я предлагал?