2

我試圖創建一個重命名的文件夾,然後命令別名焦油拉鍊吧:訪問位置參數

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 

回答

3
更好

使它像這樣的功能的別名沒有對位置參數支持,例如$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; } 
+0

謝謝。我正在尋找一個內聯答案 –

+0

這也可以傾斜:'txz(){ of =「$ 1」; nf =「$ of」$(date -I); mv「$」「$ nf」; tar cJvf「$ nf.txz」「$ nf」--remove-files; }' – anubhava

+3

@kirill_igum別名不支持位置參數。 –