如何编写多个文件的加密脚本

时间:2013-09-26 22:33:20

标签: gnupg

我正在尝试使用与源不同的输出目录。但gpg --output总是失败。这是我的剧本:

#!/bin/bash
#############################################
source=/u1/test/sourcefilein/
outputdir=/u1/encryptedfileout/
#############################################
for file in `ls $source`;do
#echo encrypting $file
sleep 10
gpg --batch --output $outputdir$file.gpg --encrypt-files \
--recipient juliyana@hotmail.com $source  
sleep 10
done

1 个答案:

答案 0 :(得分:1)

当您使用--encrypt-files时,无法指定文件的输出,因为它旨在加密多个文件。即使删除它也有其他一些错误。试试这个:

#!/bin/bash

source=/tmp/foo/
outdir=/tmp/bar/

cd $source
for file in * ; do
    gpg --output $outdir$file.gpg -er juliyana@hotmail.com $file
done ;

如果你直接在目录中调用文件变量,那么bash将为$ file使用完整路径,这意味着它将尝试写入$ source $ outdirFILENAME.gpg,这不是你想要的。

由于您正在遍历每个文件和加密命令,因此不需要--batch标志。