I am trying to move specific file names all at once from one directory to other using single command line. I have captured the file names (not with full path) in a variable as shown below, it may have 100 to 1000 files names.
var="M1.txt,A2.dat,T300.log"
I tried following command its working mv /home/rrajendr/test1/{M1.txt,A2.dat,T300.log} /home/rrajendr/test2/
Same is not working if it's parameterized mv /home/rrajendr/test1/{"$var"} /home/rrajendr/test2/
Error mv: cannot stat ‘/home/rrajendr/test1/{M1.txt,A2.dat,T300.log}: No such file or directory
Its looking for a filename as exactly like this "{M1.txt,A2.dat,T300.log}" as is, its not interpreting as individual file name. Something is missing here, please let me know
I tried following option but didn't worked
mv /home/rrajendr/test1/echo $var
-t /home/rrajendr/test2/
mv /home/rrajendr/test1/{$var}
mv /home/rrajendr/test1/{echo $var
}
Reason I am looking this option
- My sourcepath is fixed and I dont want to define back to back with full qualifier for each file name because I have 100 of files.
- I don't want to switch to the file directory (cd /home/rrajendr/test1/) back and forth, as I am doing other operation like aws cli operation & snow cli commands.
- I have already stored 100 of file names in a variable as like this string var="M1.txt,A2.dat,T300.log"
- Don't want to do this other program like python etc, not looping in shell with for or while also not with xargs
- To initiate a multiple files moves using single command line