LinuxForum.Fans
Тема

Копирование файлов

Автор: Cruiser78 6 сообщений 3136 просмотров
#107669

Вопрос типовой. И наверняка уже есть готовый ответ.
А именно.
1. Есть некий файл с весьма длинным путем (большая вложенность каталогов).
2. Есть необходимость скопировать его в новое место, но сохранив весь этот длинный путь (то есть корнем становится новый каталог).
3. Команда cp копирует файлы только в существующий каталог или каталоги рекурсивно.
4. Нет ни малейшего желания писать свой код для разбора динного пути и создания новых каталогов, чтобы потом запустить на это дело cp.

Наведите на место, где можно сплагиатничать...

#107676
Cruiser78 написал:
4. Нет ни малейшего желания писать свой код для разбора динного пути и создания новых каталогов, чтобы потом запустить на это дело cp.

Наведите на место, где можно сплагиатничать...

как вариант man tar

#107688
Cruiser78 написал:
Вопрос типовой. И наверняка уже есть готовый ответ.
А именно.
1. Есть некий файл с весьма длинным путем (большая вложенность каталогов).
2. Есть необходимость скопировать его в новое место, но сохранив весь этот длинный путь (то есть корнем становится новый каталог).
3. Команда cp копирует файлы только в существующий каталог или каталоги рекурсивно.
4. Нет ни малейшего желания писать свой код для разбора динного пути и создания новых каталогов, чтобы потом запустить на это дело cp.

Наведите на место, где можно сплагиатничать...

rsync -avR .....
man rsync

#107694
text

cp --parents DIR1/DIR2/file.txt DIR3 
#107695

Lupo Alberto, +100500 :rolleyes:
надо было man cp набрать.

--parents (начиная с версии file-utils 4.0 также -P)
Формирует имя каждого копируемого файла путем добавления к имени каталога, в который осуществляется копирование, символа косой
черты (/) и указанного полного имени исходного файла. Последний заданный аргумент cp должен быть именем существующего каталога.
Например, команда
cp --parents a/b/c existing_dir
копирует файл a/b/c в existing_dir/a/b/c, создавая отсутствующие промежуточные каталоги.

#107766
i2ks написал:
надо было man cp набрать.

Согласен, ступил. Просто в моем man'e запись много более лапидарнее:

[console] --parents
use full source file name under DIRECTORY
[/console]

А дальше - догадывайся сам. Тема закрыта.

Войдите или зарегистрируйтесь, чтобы ответить.