это если имена файлов не содержат пробелов. если же содержат, то в любом случае нужно чтобы было по одному файлу на строку либо использовать в качестве разделителя не пробел.
Друзья, попробовал все приведенные команды с разными вариантами списка, - результат = 0, как приводил выше. Делал список только из одного файла без пробелов. Думаю список не виноват. Команды давал от имени sudo из директории /media/hdb1/repo, где лежат в папках те самые пакеты. Соответственно указывал на список так /media/hdb1/repo/list.txt. Пробовал делать список без расширения .txt. Ошибка наверняка пустячная, вот только где? Пробовал читать ман - слишком сложно.
Вот результат только с другими путями (дома):
code:
root@leo-laptop:/media/sda2/repo# cp `cat list.txt` /home/leo/repo
cp: невозможно выполнить stat для `libsvn-doc': No such file or directory
cp: невозможно выполнить stat для `language-pack-gnome-mn-base': No such file or directory
cp: невозможно выполнить stat для `libchewing3-dev': No such file or directory
вот содержимое /media/sda2/repo/list.txt
libsvn-doc
language-pack-gnome-mn-base
libchewing3-dev
а вот так лежат файлы по папкам:
/media/sda2/repo/pool/main/a/aalib
/media/sda2/repo/pool/multiverse/b/babytrans
/media/sda2/repo/pool/restricted/l/linux-meta
Пробовал также такой формат list.txt:
abiword_2.4.6-1.1ubuntu2_i386.deb
babytrans_0.9.1-0.3ubuntu2_i386.deb
linux_2.6.20.15.14_i386.deb
результат такой же.
Конечно же файлы в списке должны бы быть с относительными путями до них, т.к. все вышеуказанные команды искали их в текущей директории, но вот на вскидку обход этой проблемы (выполняться будет долго из-за поиска каждого файла):
for i in `cat list.txt`; do find . -name "${i}" -exec cp '{}' /TO/DIR/ \;; done
Ну и, понятно, имена файлов в списке должны быть полными, т.е. с расширениями .deb
Тут также подрузамевается, что в репозитории Деба не кладут файлы с пробелами в имени.
Так как DVD четыре, можно после done припаять ;eject, чтобы дисковод выезжал после того, как всё файло с данного DVD скопируется.