Как скопировать файл и сохранить структуру каталогов?
Модераторы: /dev/random, Модераторы разделов
Как скопировать файл и сохранить структуру каталогов?
Добрый вечер.
Уже замаялся, извините может и вопрос банальный, но не могу найти как реализовать. Нужно скопировать файл с одной директории в другую и сохранить структуру папок. К примеру:
PATH1=/dir1
PATH2=/dir2
cp $PATH1/dir3/dir4/.../dir10/file1 $PATH2/
Как скопировать file1 в директорию PATH2 и сохранить структуру каталогов. Чтобы получилось $PATH2/dir3/dir4/.../dir10/file1.
Уже замаялся, извините может и вопрос банальный, но не могу найти как реализовать. Нужно скопировать файл с одной директории в другую и сохранить структуру папок. К примеру:
PATH1=/dir1
PATH2=/dir2
cp $PATH1/dir3/dir4/.../dir10/file1 $PATH2/
Как скопировать file1 в директорию PATH2 и сохранить структуру каталогов. Чтобы получилось $PATH2/dir3/dir4/.../dir10/file1.
- /dev/random
- Администратор
- Сообщения: 5282
- ОС: Gentoo
Re: Как скопировать файл и сохранить структуру каталогов?
Kreept писал(а): ↑11.03.2010 22:01Добрый вечер.
Уже замаялся, извините может и вопрос банальный, но не могу найти как реализовать. Нужно скопировать файл с одной директории в другую и сохранить структуру папок. К примеру:
PATH1=/dir1
PATH2=/dir2
cp $PATH1/dir3/dir4/.../dir10/file1 $PATH2/
Как скопировать file1 в директорию PATH2 и сохранить структуру каталогов. Чтобы получилось $PATH2/dir3/dir4/.../dir10/file1.
1)
Код: Выделить всё
pathcp() {
local P1="$1"
local P2="$2"
shift 2
for file; do
mkdir -p "$P2/$(dirname "$file")" && cp "$P1/$file" "$P2/$file"
done
}
2)
Код: Выделить всё
pathcp() {
local P1="$1"
local P2="$2"
shift 2
tar cC "$P1" "$@" | tar xC "$P2"
}
Это хорошо использовать, если нужно скопировать _весь_ каталог, а не 1-2 файла.
Спасибо сказали:
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Как скопировать файл и сохранить структуру каталогов?
Я предпочитаю для этих целей cpio:
Код: Выделить всё
cd "$PATH1"; echo dir3/dir4/.../dir10/file1 | cpio -p --make-directories "$PATH2"
Мои розовые очки
Спасибо сказали:
Re: Как скопировать файл и сохранить структуру каталогов?
Код: Выделить всё
f=dir3/dir4/.../dir10/file1; install -D $PATH1/$f $PATH2/$f
Я конечно далек от мысли...(с)
Спасибо сказали:
Re: Как скопировать файл и сохранить структуру каталогов?
/dev/random писал(а): ↑11.03.2010 22:16Kreept писал(а): ↑11.03.2010 22:01Добрый вечер.
Уже замаялся, извините может и вопрос банальный, но не могу найти как реализовать. Нужно скопировать файл с одной директории в другую и сохранить структуру папок. К примеру:
PATH1=/dir1
PATH2=/dir2
cp $PATH1/dir3/dir4/.../dir10/file1 $PATH2/
Как скопировать file1 в директорию PATH2 и сохранить структуру каталогов. Чтобы получилось $PATH2/dir3/dir4/.../dir10/file1.
1)
Код: Выделить всё
pathcp() { local P1="$1" local P2="$2" shift 2 for file; do mkdir -p "$P2/$(dirname "$file")" && cp "$P1/$file" "$P2/$file" done }
2)
Код: Выделить всё
pathcp() { local P1="$1" local P2="$2" shift 2 tar cC "$P1" "$@" | tar xC "$P2" }
Это хорошо использовать, если нужно скопировать _весь_ каталог, а не 1-2 файла.
Спасибо!!!!! То что доктор прописал.
Как раз задача стоит в копирование 1-2 файлов. Выбрал вариант с использованием tar, так как путь к файлу передается в переменой VAR=dir3/dir4/.../dir10/file1
Re: Как скопировать файл и сохранить структуру каталогов?
/dev/random писал(а): ↑11.03.2010 22:16Это хорошо использовать, если нужно скопировать _весь_ каталог, а не 1-2 файла.
Как скопировать file1 в директорию PATH2 и сохранить структуру каталогов
или файлы, содержащиеся в "каталогах" не составляют структуру "каталогов"?
Re: Как скопировать файл и сохранить структуру каталогов?
БигАнди не отмазывайся
Я конечно далек от мысли...(с)
Re: Как скопировать файл и сохранить структуру каталогов?
cpio и install, тоже супер.
Всем спасибо, не ожидал что так быстро получу, столько полезных ответов.
Всем спасибо, не ожидал что так быстро получу, столько полезных ответов.
Re: Как скопировать файл и сохранить структуру каталогов?
хотя БигАнди и близок был
cp --parents $PATH1/$f $PATH2
но как понимаю с версии 4 гну, в бсд нет такого..
cp --parents $PATH1/$f $PATH2
но как понимаю с версии 4 гну, в бсд нет такого..
Я конечно далек от мысли...(с)
Re: Как скопировать файл и сохранить структуру каталогов?
RTFM
-------
KOI8-R - патриотичная кодировка
-------
KOI8-R - патриотичная кодировка