Alias
將 rm 別名更改為 mv
參考:如何將
rm
更改為類似mv ~/ .trash
的命令我想在 UNIX 中實現資源回收筒實用程序,因為 UNIX 沒有。
在
.bashrc
文件中我更改別名rm='move.sh"
根據上面的參考指南,我在 move.sh 腳本中編寫了函式
腳本:move.sh
#!/bin/sh TRASH=<trash directory path> move() { mv "$@" $TRASH; } move
當我跑步時,我遇到了錯誤。有人可以幫助我做錯了什麼嗎?
mv:參數不足(一)用法:mv
$$ -f $$ $$ -i $$f1 f2
mv$$ -f $$ $$ -i $$f1 … fn d1
mv$$ -f $$ $$ -i $$d1 d2
首先,如果這是您的整個腳本,您不需要先創建一個函式。簡單地寫:
#!/bin/bash TRASH=<trash directory path> echo "$TRASH" mv "$@" "$TRASH"
但是要回答您的腳本有什麼問題,最明顯的錯誤是您沒有將任何參數傳遞給您的函式。換句話說,腳本中的最後一行也應該獲取傳遞給它的腳本參數。
move
應該變成move "$@"
.除此之外,如果您沒有明確的理由,請記住始終引用您的變數。
正如您似乎想要的那樣
.bashrc
,只需在其中直接創建函式:cat <<'EOF' | tee -a "$HOME/.bashrc" trash(){ local t="/my/trash/path"; [[ -n "$*" ]] && echo "$t" && mv "$@" "$t" ;} EOF
我強烈建議不要重寫標準
rm
命令,這就是我trash
在範例中使用它的原因