我需要创建一个脚本,它从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
答案 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存档?