我正在尝试编写一个别名,将文件夹及其子文件夹/文件放入以运行命令的日期为标题的加密档案中。最好采用“YYYYMMDD FolderName Backup”格式。
例如,将 YYYYMMDD 替换为 20150707 或调用命令的任何日期。
我知道如何通过编辑/创建主文件夹中的 .bash_aliases 文件并添加如下行来设置别名:
alias cryptdoc="cd ~/Desktop/ && 7z a -pSome_Pass -r ~/Desktop/YYYYMMDD_Documents_Backup.7z' '/home/location/Documents/'"
关于上述代码的一些简要说明:
alias cryptdoc=
设置别名。- 包含引号是为了以防我的某个目录的名称中有空格,这样我就可以编写一个像“cd '~/My Documents/Folderhere'”这样的命令,我可能需要这个命令才能正常工作而不会弄乱命令。
cd ~/Desktop/
因为我想让文件弹出到桌面上&&
以确保只要第一个命令有效,我就可以执行第一个命令,然后执行第二个命令。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
。在$( )
日期命令周围有表示在命令时运行它。
希望这可以帮助!