Gabriel9999 Ответов: 3

Копировать объемные файлы в Linux


У меня есть несколько файлов в системах Linux, где я хочу скопировать их с помощью одной команды cp в другой путь и каталог. Я должен написать bash-скрипт для копирования Один к одному?

Что я уже пробовал:

У меня есть несколько файлов в системах Linux, где я хочу скопировать их с помощью одной команды cp в другой путь и каталог. Я должен написать bash-скрипт для копирования Один к одному?

Richard MacCutchan

Это во многом зависит от имен файлов (все ли они имеют какую-то общую часть своего имени) и от того, куда вы хотите их скопировать. вам может понадобиться только одна команда или более сложный сценарий bash.

3 Ответов

Рейтинг:
1

phil.o

Gabriel9999 писал:
Я должен написать bash-скрипт для копирования Один к одному?
Да; если есть несколько пунктов назначения, вы не можете написать одну команду для всех из них.


Рейтинг:
1

CPallini

А как насчет документации: cp(1): копирование файлов/каталогов - Man-страница Linux[^] ?
Если один экземпляр cp если это не соответствует вашим потребностям (не очень ясно для меня), то да, вы должны написать сценарий оболочки.


Рейтинг:
0

k5054

Некоторые варианты для вас
Если ты только захочешь copy каталоги из одного места в другое затем используют cp

cp -rp dir1 dir2 dir3 ... dest

То -rp флаги говорят cp копировать рекурсивно и сохранять разрешения/временные метки на копиях.

Если вы хотите move каталоги, постоянно в новом месте использования mv
mv dir1 dir2 dir3 ... dest


Если вам просто нужно предоставить доступ из вашего целевого каталога к вашим данным, то, возможно, вы можете просто настроить мягкие ссылки
ln -s dir1 dir2 dir3 ... dest
Это быстро, так как на самом деле он нигде не копирует данные, и если вы измените какие-либо данные в dir1 (например), то они будут мгновенно доступны любому, кто смотрит на них из dest.

Если вы хотите скопировать свои данные в dest и вам нужно регулярно обновлять их, но будет изменено только подмножество файлов, то рассмотрите возможность использования rsync
rsync -ar dir1 dir2 dir3 ... dest
После первоначальной копии это будет копировать только те файлы, которые отличаются между исходным и целевым каталогами, что резко сократит передачу данных на копии после первой.

Все эти команды поддерживают опцию a-v, чтобы быть подробным о том, что она делает, так что вы можете видеть, что делает команда.