I have a directory and in it has several files. I'm trying to decrypt those files and move them to another directory. I can't figure out how to set the output filename and move it.
So, the directory structure looks like the following:
/Applications/MAMP/bin/decryptandmove.sh
/Applications/MAMP/bin/passtext.txt
/Applications/MAMP/bin/encrypted/test1.txt.pgp
/Applications/MAMP/bin/encrypted/test2.txt.pgp
/Applications/MAMP/htdocs/www/decrypted/
For all the files that are found in the encrypted directory, I'm trying to decrypt them and then move them to the directory www/decrypted/. I don't know what the filenames in the encrypted directory will be ahead of time (this script will eventually run via cron job), so I wanted to just output the decrypted files with the same filenames, but without the pgp. So, the result would be:
/Applications/MAMP/bin/decryptandmove.sh
/Applications/MAMP/bin/passtext.txt
/Applications/MAMP/bin/encrypted/
/Applications/MAMP/htdocs/decrypted/test1.txt.pgp
/Applications/MAMP/htdocs/decrypted/test2.txt.pgp
So, this is all I have written so far and it doesn't work. FILE and FILENAME are both wrong. I haven't even gotten to the moving part.
pass_phrase=`cat passtext.txt|awk '{print $1}'`
for FILE in '/Applications/MAMP/bin/encrypted/';
do
FILENAME=$(basename $FILE .pgp)
gpg --passphrase $pass_phrase --output $FILENAME --decrypt $FILE
done
This should fix the FILENAME and FILE problems, although it will only work if you're in the "decrypted" directory right now. If you want to fix that you'll have to add the correct directory to the FILENAME variable :)
I like to do a
cd
first:Then
or
I personally prefer:
Then maybe
Important: If you use the
ls
approach, make sure that your filenames don't contain spaces. See also the link in ghostdog74's comment (thanks, BTW) - this page is generally quite useful.