Есть две проблемы, связанные со сбоем второй части скрипта. Во-первых, вы на самом деле не читаете никаких входных данных в цикл. У вас было:
while IFS= read -r file; do something; done
Но нужно:
while IFS= read -r file; do something; done < "$inputFile"
Тогда mv
не может читать из входного потока, нет смысла передавать в него данные. Ему нужны имена файлов в качестве входных данных, а не только текст, и он в любом случае не читает со стандартного ввода. Итак, echo "$file" | mv "$file" "/somewhere"
— это то же самое, что просто запустить mv "$file" "/somewhere"
. echo $file
бессмысленно. И это не работает, так как $file
имеет только вторую часть имени файла (001
, 002
и т. д. ), а не фактическое имя файла.
В любом случае, вы можете сделать все это с помощью одного цикла напрямую, без промежуточного файла:
for file in /path/to/directory1/** ; do
dirName=$(awk -F[-.] '{print $2}' <<<"$file");
echo mv "$file" "/path/to/directory2/$dirName";
done
Если это распечатывает то, что вам нужно, удалите echo
и запустите его снова, чтобы фактически переместить файлы.
Большая часть этого рассматривается в подробном описании репозиториев в вики Ubuntu .
Вас должны волновать разные уровни поддержки и разные лицензии.:
Компонент | Поддерживается | Длительность поддержки | Лицензия |
---|---|---|---|
main | Канонический | Пять лет (LTS) | Бесплатно / с открытым исходным кодом |
restricted | Сторонний -провайдер | Пять лет (LTS) | Право собственности, источник может быть недоступен |
universe | Сторонняя -сторона (обычно, Debian) | Нет обязательств | Бесплатно / с открытым исходным кодом |
multiverse | Третья -сторона | Нет обязательств | Не -бесплатно, патент -обременен и т. д. |
security
содержит исправления безопасности. updates
дополнительно исправляет серьезные ошибки. backports
предоставляет новые версии (некоторых )пакетов.
В большинстве случаев новые версии пакетов становятся доступными только в последующих выпусках Ubuntu. Однако иногда может быть полезно сделать новую версию доступной для пользователей старых выпусков, даже если она не является кандидатом на updates
; вот тут-то и появляется backports
. Обратите внимание, что backports
не тестируется в целом, поэтому, как правило, вы должны извлекать только те пакеты, которые вас интересуют, из этого репозитория.