午夜指挥官,在用户菜单中使用日期

use*_*619 4 linux tar date mc

我想使用 MC(午夜指挥官)来压缩名称中带有日期的选定目录,例如: dirname_20131231.tar.gz

用户菜单中的命令是:

tar -czf dirname_`date '+%Y%m%d'`.tar.gz %d
Run Code Online (Sandbox Code Playgroud)

存档丢失,因为%m,并且%d在 MC 中有另一个含义。我为日期创建了别名,但它也不起作用。

有没有人解决过这个问题?

Joh*_*024 5

要避开百分号,请将它们加倍:

tar -czf dirname_$(date '+%%Y%%m%%d').tar.gz %d
Run Code Online (Sandbox Code Playgroud)

以上会将当前目录 (%d) 压缩为也在当前目录中的文件。如果要压缩光标指向的目录而不是当前目录,请改用 %f:

tar -czf %f_$(date '+%%Y%%m%%d').tar.gz %f
Run Code Online (Sandbox Code Playgroud)

mc 处理特殊字符的转义,因此无需将 %f 放在引号中。

顺便说一下,午夜指挥官对百分号的特殊处理不仅出现在用户菜单文件中,也出现在命令行中。将 shell 命令与类似${var%.c}. 在命令行中,与在用户菜单文件中一样,百分号可以通过加倍来转义。