Bash 访问多命令内联别名/命令中的位置参数

Bash 访问多命令内联别名/命令中的位置参数,bash,position,command-line-arguments,alias,argument-passing,Bash,Position,Command Line Arguments,Alias,Argument Passing,我正在尝试为重命名文件夹然后对其进行tar压缩的命令创建别名: alias txz='of=$1; nf=$of$(date -I); mv $of $nf; tar cJvf $nf.txz $nf --remove-files' 打电话给 txz test_folder 我会犯错误 mv: missing destination file operand after ‘2014-05-14’ Try 'mv --help' for more information. tar: 2014-

我正在尝试为重命名文件夹然后对其进行tar压缩的命令创建别名:

alias txz='of=$1; nf=$of$(date -I); mv $of $nf; tar cJvf $nf.txz $nf --remove-files'
打电话给

txz test_folder
我会犯错误

mv: missing destination file operand after ‘2014-05-14’
Try 'mv --help' for more information.
tar: 2014-05-14: Cannot stat: No such file or directory
test_folder/
test_folder/1
test_folder/2
tar: Exiting with failure status due to previous errors
因为有多个命令。如果只有一个命令(无
),则
$1
有效

有办法解决吗

ps:以下是创建测试文件夹的命令:

mkdir test_folder; touch test_folder/1 test_folder/2

最好将其设置为这样的函数,因为别名不支持位置参数,如
$1、$2
等:

txz() {
   of="$1"
   nf="$of"$(date -I)
   mv "$of" "$nf"
   tar cJvf "$nf.txz" "$nf" --remove-files
}
或者在一行中:

txz() { of="$1"; nf="$of"$(date -I); mv "$of" "$nf"; tar cJvf "$nf.txz" "$nf" --remove-files; } 

非常感谢。我正在寻找一个内联答案这也可以是倾斜的:
txz(){of=“$1”;nf=“$of”$(date-i);mv“$of”“$nf”;tar cJvf“$nf.txz”“$nf”--删除文件;}
@kirill\u igum别名不支持位置参数。谢谢@otherguy我应该首先添加这一点为什么在txz之前有
?您以前运行过unalias txz吗?