我想使用MC(午夜指挥官)来压缩选定的目录,并在其名称中加上日期,例如:
dirname_20131231.tar.gz
用户菜单中的命令是:
tar -czf dirname_`date '+%Y%m%d'`.tar.gz %d
存档丢失,因为%m和%d在MC中具有其他含义.
我为日期做了一个别名,但它也不起作用.
有人解决了这个问题吗?
解决方法:
为了逃避百分号,加倍:
tar -czf dirname_$(date '+%%Y%%m%%d').tar.gz %d
上面会将当前目录(%d)压缩到当前目录中的文件.如果要压缩光标所指向的目录而不是当前目录,请使用%f代替:
tar -czf %f_$(date '+%%Y%%m%%d').tar.gz %f
mc处理特殊字符的转义,因此不需要将%f放在引号中.
顺便说一下,午夜指挥官对百分号的特殊处理不仅发生在用户菜单文件中,还发生在命令行中.将shell命令与${var%.c}等结构一起使用时,这是一个问题.在命令行中,与用户菜单文件中的相同,百分号可以通过加倍来转义.