在 Mac OS X 上,现在我使用以下命令将一个小项目文件夹备份到 USB 闪存驱动器:
alias a='alias'
a dateseq='date "+%Y-%m-%d %H:%M:%S"'
a backup_proj='cp -a ~/code/MyProj "/Volumes/KINGSTON/MyProj `dateseq`"
所以每次我输入 时backup_proj
,文件夹都会从硬盘备份到 USB 驱动器,并且每个项目也使用 Git 进行内部版本控制。每个文件夹只有500kb左右,填满1GB也需要很长时间(闪存盘是16GB)。该文件夹备份为:
$ ls -1 /Volumes/KINGSTON/
MyProj 2012-05-27 08:20:50/
MyProj 2012-05-27 10:27:56/
MyProj 2012-05-27 14:53:01/
但我很偏执,也想备份到 Google Drive 或 Dropbox,这样它就会自动上传到他们的服务器,只需加密整个文件夹并将单个结果文件复制到 Google Drive 或 DropBox 的文件夹,密码可以apple234321pineapple
是在命令行上指定。我想知道有什么好方法可以将文件夹加密为单个文件,以便需要非实际的时间来破解? (你能给出执行此操作的命令行吗)。
答案1
如果您使用gpg
,那么您可以即时捆绑和加密,而无需指定密码。
% tar cf - MyProj | gpg -e -u 01234567 >/tmp/backup.tar.gpg
这里01234567
是您想要用来解密备份的密钥的 keyid。如果在您的 中~/.gnupg/gpg.conf
,将default-key
参数设置为您首选密钥的 keyid,则可以省略 -u 选项。
您可以类似地使用 zip 到 stdout zip - MyProj
。
答案2
man zip
从手册页:
-e --encrypt Encrypt the contents of the zip archive using a password which is entered on the terminal in response to a prompt (this will not be echoed; if standard error is not a tty, zip will exit with an error). The password prompt is repeated to save the user from typing errors.
另一种选择是 SSL 加密,例如:
openssl des3 -salt -pass pass:password -in file.txt -out encfile.txt
也许您可以在使用 openssl 加密文件夹之前先 TAR 该文件夹。
man openssl