LINUX.ORG.RU

как скопировать все каталоги из списка в файле?

 ,


0

1

xUbuntu 16.04.1

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

аск фор хелп

сильно подозреваю, что уже есть какая-то superpupercopy в которой это уже реализовано

Может быть и есть, но пока вы ее будете искать, десять раз напишете.

ну или изящное решение через bash (в коем не силен увы)

Может быть и есть, но пока вы его будете искать, двадцать раз напишете простое и прямое.

#!/bin/bash

list="$1"
dest="$2"

while read -r f; do
    cp --archive --recursive --target-directory="$dest" -- "$f"
done < "$list"

Не проверял.

Zmicier ★★★★★ ()
Последнее исправление: Zmicier (всего исправлений: 2)
Ответ на: комментарий от staseg

Не, в таком виде IFS не доработать. В таком можно:

for x in $(cat list.txt); do cp -r "$x" "$dst"; done
staseg ★★★★★ ()
Последнее исправление: staseg (всего исправлений: 1)

сильно подозреваю, что уже есть какая-то superpupercopy в которой это уже реализовано

где тот анонимус, пусть расскажет как это делается на поверШ

futurama ★★★★★ ()
Ответ на: комментарий от Lavos

tar -T /path/to/filelist.lst -cf - | (cd /path/to/destination && tar xvBf -)

И кто-то после этого будет ещё говорить, что звёзды на лоре не продаются?

ТС:

xargs -a files.txt -L 1 -I {} cp {} -t /dest/dir

anonymous ()
Ответ на: комментарий от anonymous

имо, tar лучше привeденного варианта: если файлов ~ нескольких k, будет долго; и странное сочетание непосиксового "-a" с "-L" и "-I" (гнутый может -li)

xargs <list cp -t dest --

anonymous ()
Ответ на: комментарий от logon

вот я пока что это выбрал, спасибо

спасибо всем отозвавшимся!

MinasFilm ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.