Shell Scripting用于存档和加密

时间:2012-12-01 16:08:47

标签: linux shell tar

我需要创建一个脚本,它从CLI接收扩展名为.tar.gz的文件名和一个文件夹(例如./archivator.sh box.tar.gz MyFolder)。此脚本将归档文件夹中的文件(仅文件夹中的文件,没有任何压缩),它们将被移动到作为参数接收的存档中。然后将使用密码“apple”对存档进行加密(使用aescrypt)。

操作系统:Debian 6

注意:最终加密存档的名称与第一个给定参数的名称相同。

到目前为止,我所尝试的是:

tar -cvf $1 $2/* | aescrypt -e -p apple - > $1.aes | mv $1.aes $1

这是我在尝试检查脚本时收到的内容:

tar: This does not look like a tar archive
tar: Exiting with a failure status due to previous errors

3 个答案:

答案 0 :(得分:1)

尝试这样做:

tar cf - $2/* | aescrypt -e -p apple - > $1

-此处表示 STDIN

使用GNU tar 1.26在Linux(archlinux)上运行良好

如果不起作用,请在调试模式下运行脚本:

bash -x script.sh
然后再来发布输出。

答案 1 :(得分:1)

经过一番研究,这是解决方案:

pushd $2
tar cvf $1 .
openssl aes-256-cbc -in $1 -out $1.enc -pass pass:apple
mv $1.enc $1
popd

答案 2 :(得分:0)

您的错误似乎表明解释器正在接收一个不是tar存档的文件,但它需要一个。您是否检查过以确保您提供的文件是tar存档?