Move a list of files(in a text file) to a directory?
bash won't read the contents of the file unless you tell it to.
for file in $(cat ~/Desktop/files.txt); do mv "$file" ~/newfolder; done
You need to tell your loop to read the file, otherwise it is just executing:
mv ~/Desktop/files.txt ~/newfolder
In addition, as nerdwaller said, you need separators. Try this:
while read file; do mv "$file" ~/newfolder; done < ~/Desktop/files.txt
If your paths or file names contain spaces or other strange characters, you may need to do this:
while IFS= read -r file; do mv "$file" ~/newfolder; done < ~/Desktop/files.txt
Notice the quotes "
around the $file
variable.
If the filenames do not contain whitespace:
mv -t dest_dir $(< text.file)
is probably the most concise way.
If there is whitespace in the filenames
while IFS= read -r filename; do mv "$filename" dest_dir; done < test.file
is safe.