Как скопировать файлы, имена которых записаны в текстовом файле? [РЕШЕНИЕ]

Изображение пользователя DarkneSS.

Гуглил, увидел 1000 и 1 способ, как список создать, и не нашёл ни одного, как провернуть сабж. Man cp читал.
Идеальный вариант - команда в консоль, но можно и с помощью хитрого софта.

0
balamutick - 9 Июль, 2010 - 01:55
Изображение пользователя balamutick.

Лучше написать подробнее, что должно получится.

+1
Foxy - 9 Июль, 2010 - 02:08
Изображение пользователя Foxy.

Есть список пакетов. Вопрос в том как автоматизировать выборку нужных пакетов из одной папки и копирование в другую папку этих пакетов согласно списку.

+1
Станислав Збарасский - 9 Июль, 2010 - 03:07
Изображение пользователя Станислав Збарасский.

Если задача просто скопировать кучу файла при наличии их названий в текстовом файле, то я бы открыл этот текст и воспользовался бы поиском-заменой. Найти [признак конца строки] и заменить на [признак конца строки cp пробел]. При необходимости можно варьировать пункт назначения. Потом всё это в буфер скопировать и вставить в консоли, кажется, должно получиться.

Кроме того, такие вещи можно решить, написав на awk и/или perl команду для консоли (но тут я уже не помогу).

+1
Жюстина - 9 Июль, 2010 - 08:11
Изображение пользователя Жюстина.

А вот примерно так:

Развернуть/свернуть скрытый текст.
#!/bin/bash
# первый параметр это имя файла со списком
# второй параметр это путь назначения
# IFS нужно поменять на всякий случай если в именах файлов есть пробелы, а то чтение будет не по строкам, а по пробелам
t=$IFS
IFS=$'\n'
while read line
do
  cp $line $2
done < "$1"
IFS=$t

Обозвать этот файл к примеру cplist, и консолировать: cplist ~/filelist ~/куда/надо/копировать

0
Voyageur - 9 Июль, 2010 - 09:32
Изображение пользователя Voyageur.

Кать, предложил бы сделать так: cp "$line" $2, чтобы cp не думал, что, например, My CV.txt - это два отдельных файла.

+1
Foxy - 9 Июль, 2010 - 09:10
Изображение пользователя Foxy.

Спасибо! Примерно до такого же решения дошла пару часов назад.

+1
Voyageur - 9 Июль, 2010 - 09:28
Изображение пользователя Voyageur.

Можно и так:
List.txt - текстовый файл со списком
$dest - куда копировать
cp `cat List.txt` $dest
Здесь пробел или энтер в качестве разделителя роли большой не играет.
Единственное, как Катя тут сказала, - если имена файлов проблемные, то надо их в списке экранировать. Предложил данный способ на случай если все с именами в порядке и нужно побыстрей))

0
DarkneSS - 9 Июль, 2010 - 11:42
Изображение пользователя DarkneSS.

Всем спасибо! Такая тривиальная задача и такие интересные решения!

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры