1

使用以下脚本加密文件

#!/bin/bash
# crypten - a script to encrypt files using openssl

FNAME=$1

if [[ -z "$FNAME" ]]; then
echo "crypten <name of file>"
echo "  - crypten is a script to encrypt files using des3"
exit;
fi

openssl des3 -salt -in "$FNAME" -out "$FNAME.des3"

这只允许一个文件输入和一个文件输出,我想做的是批量加密具有特定扩展名的文件。即如果我有一个包含 1.text 2.text 3.text 4.text 的文件夹,我希望能够执行 crypten *.text 并将所有四个文件转换为 .des3

4

2 回答 2

2

使用 Unix 哲学——一种工具完成一项特定任务
你想加密一个文件,没关系 - 你可以使用你自己的脚本。
您想为目录中的每个文件应用脚本 -xargs做得好:

ls -1 dir_name/*.text | xargs -d '\n' -i crypten {}
于 2013-08-07T15:31:44.693 回答
1

遍历位置参数;用于$#检查是否已收到至少一个并$@(引用)按顺序检索每个。

if (( $# == 0 )); then
    echo "crypten <file1> [ <file2> ... ]"
    echo "  - crypten is a script to encrypt file using des3"
    exit
fi
for FNAME in "$@"; do
    openssl des3 -salt -in "$FNAME" -out "$FNAME.des3"
done
于 2013-08-07T15:26:14.600 回答