编写一个别名,将文件夹及其子文件夹/文件放入以日期为标题的加密档案中

编写一个别名,将文件夹及其子文件夹/文件放入以日期为标题的加密档案中

我正在尝试编写一个别名,将文件夹及其子文件夹/文件放入以运行命令的日期为标题的加密档案中。最好采用“YYYYMMDD FolderName Backup”格式。

例如,将 YYYYMMDD 替换为 20150707 或调用命令的任何日期。

我知道如何通过编辑/创建主文件夹中的 .bash_aliases 文件并添加如下行来设置别名:

alias cryptdoc="cd ~/Desktop/ && 7z a -pSome_Pass -r ~/Desktop/YYYYMMDD_Documents_Backup.7z' '/home/location/Documents/'"

关于上述代码的一些简要说明:

  1. alias cryptdoc=设置别名。
  2. 包含引号是为了以防我的某个目录的名称中有空格,这样我就可以编写一个像“cd '~/My Documents/Folderhere'”这样的命令,我可能需要这个命令才能正常工作而不会弄乱命令。
  3. cd ~/Desktop/因为我想让文件弹出到桌面上
  4. &&以确保只要第一个命令有效,我就可以执行第一个命令,然后执行第二个命令。
  5. 7z因为最好a将文件添加到存档并-p在我选择的命令中包含密码。请记住,如果您在-p此之后添加密码,它应该如下所示:-psomepasswordthatdoesntlookrightbutis-r是因为我希望它通过主文件夹中的文件夹和文件进行递归。

我还意识到这意味着我的机器上的别名文件中会有一个纯文本密码。但是如果有人可以访问别名文件,他们也可以访问包含这些文件的文件夹,所以这变得无关紧要。

这样我只需进入终端并输入cryptdoc并按回车键即可创建一个使用我选择的密码加密的 7-Zip 文件,然后将其上传到一些不太安全的云存储。但是我如何添加一个变量,在终端中输入 cryptdoc 时实际获取 YYYYMMDD 并将其插入到文档标题中?

答案1

这对你来说应该没问题。只需要 date 命令。

alias cryptodoc="cd ~/Desktop/ && 7z a -pSome_Pass -r ~/Desktop/$(date +%Y%m%d)_Documents_Backup.7z ~/Documents/* 2>/dev/null"

命令表示date +%Y%m%d,运行date,然后+表示format,然后%Y表示YYYY%m表示MM%d表示DD。在$( )日期命令周围有表示在命令时运行它。

希望这可以帮助!

相关内容