使用以下脚本加密文件
#!/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
答案 0 :(得分:2)
使用Unix哲学 - 一个工具用于一个特定任务。
你想要加密一个文件,没关系 - 你可以使用你自己的脚本
您希望为目录中的每个文件应用脚本 - xargs
做得很好:
ls -1 dir_name/*.text | xargs -d '\n' -i crypten {}
答案 1 :(得分: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