Создавайте каталоги и загружайте файлы, читая входные данные из файла

cat paste_output.txt | while read -r file_name path_name file; 
do mkdir -p -- "$path_name"; 
wget "$file_name"; 
mv "$file" "$path_name"; 
done; 

Привет! У меня есть этот кусок кода, который читает поле за полем из указанного файла. Здесь я пытаюсь создать каталог, указанный во втором поле, а затем загружаю файл, указанный в первом поле, и после загрузки этого файла я помещаю этот файл в каталог, указанный во втором поле.

Вывод: Я получаю желаемую структуру каталогов и загруженные файлы, однако файлы загружаются в каталог, из которого выполняются команды.

Как переместить файлы в нужные каталоги?

1 ответ

Решение

Вы можете использовать -P флаг wget положить файл в целевой каталог. Если каталог не существует, он создаст его, так что это также позволит вам сэкономить на mkdir,

while read -r file_name path_name file; do
    wget -P "$path_name" "$file_name"
done < paste_output.txt

Я сделал некоторые другие улучшения в сценарии:

  • cat бесполезно, лучше перенаправление ввода
  • Точки с запятой в конце строк не нужны
  • Для удобства чтения полезно сделать отступ для тела цикла
Другие вопросы по тегам