Самый быстрый способ скопировать большую папку в Unix
Я пытаюсь скопировать большую папку размером 1-5 ГБ, которая содержит подкаталоги с файлами в диапазоне от 1 до 35 МБ. Я пытался использовать "cp", но это занимает более 10 минут. Копирование и вставка в окна, кажется, делают работу быстрее.
Я новичок в Unix, и мне было интересно, есть ли более быстрая альтернатива или cp, или способ оптимизировать его работу. Я прочитал о буферах, но я так запутался, как они работают (поэтому я решил не использовать его).
Что я пытаюсь сделать: мне нужно перенести файлы с моего диска H на сетевой диск в другом месте (также удалить файлы с сетевого диска, чтобы на него можно было копировать новые файлы). Это действительно прямая задача, над которой я работаю. Просто требуется около двух десятилетий, чтобы закончить.
PS Не уверен, что мне сказали неправильно, но работа в Unix, как правило, быстрее, чем Windows, верно?
1 ответ
Вы можете попробовать использовать tar
или компрессор, как zip
или же gzip
чтобы поместить всю структуру каталогов в один архивный файл, скопируйте архивный файл и разархивируйте его в месте назначения. Я сомневаюсь, что это сэкономит вам время в целом, но, по крайней мере, шаг копирования будет быстрее.
tar cvf folder.tar /path/to/original/folder
cp folder.tar /path/to/destination
cd /path/to/destination
tar xvf folder.tar
Я думаю, что tar работает быстрее, потому что чтение и запись происходят в разных процессах и не ждут друг друга. У него также есть то преимущество, что он, как правило, умнее сохраняет такие тонкости, как ссылки и разрешения:
tar cf - path | ( cd /my/new/location ; tar xf - )