Як можна використовувати cp для копіювання каталогу, але ігнорувати певний підкаталог у Linux


9

Через проблему на жорсткому диску я намагаюся перенести розділ з одного жорсткого диска на інший. Для цього я дотримуюся http://www.ibm.com/developerworks/library/l-partplan.html статті. У частині копіювання я хотів би проігнорувати один конкретний підкаталог. Як я можу це зробити, маючи на увазі під час копіювання, я повинен зберігати свою групу власників та штамп часу. Є близько 700 ГБ даних, які потрібно скопіювати, якщо я не ігнорую конкретний підкаталог.

Відповіді:


11

rsync -ax --exclude [relative path to directory to exclude] /path/from /path/to

Можливо, ви хочете (і ні) використовувати їх --delтакож. Перевірте сторінку керівництва.


Так, це зробило трюк. Це працює ..
P Roy

2

Зазвичай я використовую 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

Звичайно, спершу я перевіряю це на чомусь меншому, але ви розумієте.


0

Ви можете написати простий скрипт bash з циклом, щоб ігнорувати певний шлях, який ви не хочете скопіювати, та скопіювати решту. Іншим рішенням можуть бути для нас регулярні вирази. Ви можете прочитати сценарії bash тут -> http://tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html підручник з Regex тут -> http: //www.regular-expressions. інформація /


0

Чи можете ви тимчасово перемістити ( mv) великий підкаталог в якесь інше місце, зробити копію та відновити підкаталог? Я не бачу прямого варіанту cpдля цього.


Я теж перевірив man cp, не можна ігнорувати використання cp. У мене в цьому підкаталозі є 550 ГБ даних і телевізор, який може зайняти години.
П рой

Я припускав, що mv буде відносно недорогою операцією - оновлення посилань на дані, а не фізичне переміщення їх на диску. Принаймні, я завжди знаходив рухи в Windows набагато швидшими, ніж копії - файлова система Linux може працювати зовсім інакше.
Еш

mv до того ж жорсткого диска швидко. Але коли хтось робить телевізор через жорсткі диски, я думаю, що це займає той же час, що і cp.
P Roy

Я мав намір перенести його кудись на той же жорсткий диск, щоб вийти з нього, а потім скопіювати решту на віддалений диск, а потім перемістити великий файл назад. Якщо ви не копіюєте весь диск з /.
Еш

0

Скоріше некрасиве рішення, але ... чому б просто не виконувати рекурсивно все в каталозі, а потім рекурсивно копіювати окремі каталоги?


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.