My bash fu is not what it should be.
I want to create a little batch script which will copy a list of directories into a new zip file.
There are (at least) two ways I can think of providing the list of files:
OR
The first option seems more straightforward (though less elegant).
The two problems I am facing are that I am not sure how to do the following:
Could someone suggest in a few lines, how I can do this?
BTW, I am running on Ubuntu 10.0.4
You can create a gzipped tar on the commandline as follows:
tar czvf mytar.tar.gz dir1 dir2 .. dirN
If you wanted to do that in a bash script and pass the directories as arguments to the script, those arguments would end up in $@
. So then you have:
tar czvf mytar.tar.gz "$@"
If that is in a script (lets say myscript.sh
), you would call that as:
./myscript.sh dir1 dir2 .. dirN
If you want to read from a list (your option 1) you could do that like so (this does not work if there is whitespace in directory names):
tar czvf mytar.tar.gz $(<config.txt)