Из-за проблемы с жестким диском я пытаюсь переместить раздел с одного жесткого диска на другой. Я следую за http://www.ibm.com/developerworks/library/l-partplan.html статьей, чтобы сделать это. В части копирования я бы хотел игнорировать один конкретный подкаталог. Как я могу добиться этого, помня при копировании, что я должен сохранить свою группу владельцев и метку времени. Существует около 700 ГБ данных, которые необходимо скопировать, если я не игнорирую конкретный подкаталог.
6 ответов
rsync -ax --exclude [relative path to directory to exclude] /path/from /path/to
Вы можете (или нет) использовать --del
также. Проверьте страницу руководства.
Обычно я использую cpio
следующим образом,
cd source_dir; find . -depth | cpio -pdmv dest_dir
А так как это конвейер, вы можете поместить "фильтр вычитания" посередине.
cd sourcedir; find . -depth | grep -v exclude_dir | cpio -pdmv dest_dir
или вы можете разделить это на несколько шагов,
cd source_dir; find . -depth > files.lst
gedit files.lst # (take out the offending directory and files and save back to files.lst)
cpio -pdmv dest_dir < files.lst
Конечно, я бы сначала проверил это на чем-то меньшем, но вы поняли.
Так почему бы не просто
cp -Rv [SRC] [DEST] | grep -v [EXCLUDE]
Вы можете написать простой bash-скрипт с циклом, чтобы игнорировать определенный путь, который вы не хотите копировать, и копировать остальное. Другим решением могут быть регулярные выражения. Вы можете прочитать о скриптах bash здесь -> http://tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html Учебник по регулярным выражениям здесь -> http://www.regular-expressions. Информация/
Можете ли вы временно переместить (mv
) большой подкаталог в другое место, выполнить копирование, а затем восстановить подкаталог? Я не вижу прямой опции в cp
чтобы сделать это.
Скорее уродливое решение, но ... почему бы просто не рекурсивно скопировать все в каталоге, а затем рекурсивно скопировать отдельные каталоги?