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;
Hi! I have this piece of code that reads field by field from the file specified. What I am trying to do here is I am creating a directory that is specified in second field and then I am downloading file specified in first field and then after having that file downloaded I am that file in the directory specified in second field.
Output: I am getting the desired directory structure and files downloaded however files are downloading in the directory I am executing the commands from.
How to move files in the desired directories?
Advertisement
Answer
You can use the -P flag of wget to put the file in the target directory.
If the directory doesn’t exist, it will create it,
so this also let’s you save on the mkdir.
while read -r file_name path_name file; do
wget -P "$path_name" "$file_name"
done < paste_output.txt
I made some other improvements to the script:
- The
catis useless, input redirection is better - The semicolons at end of lines are unnecessary
- It’s good to indent the body of loops, for readability