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 ;

ディレクトリ内の file 変数を直接呼び出すと、bash によって $file のフル パスが使用されます。これは、$source$outdirFILENAME.gpg に書き込もうとすることを意味しますが、これは望ましくありません。

各ファイルと暗号化コマンドを反復処理しているため、 --batch フラグは不要です。

于 2013-10-20T13:49:56.810 に答える