Alias

將 rm 別名更改為 mv

  • February 21, 2022

參考:如何將 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在範例中使用它的原因

引用自:https://unix.stackexchange.com/questions/691371