2

我正在尝试使用与源不同的输出目录。但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
4

1 回答 1

2

使用 --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 标志是不必要的。

于 2013-10-20T13:49:56.810 回答