Rm

如何使“是”成為 rm -i 的預設值

  • October 18, 2022

我想查看一長串被刪除的文件,它們不是很重要,所以如果我不小心刪除了其中一些也沒問題,但我還是想保存一些。

如何撥打電話rm -i ./*並收到提示rm: remove regular file 'myfile'?,但將預設設置為(是/否)中的“是”?

沒有什麼能阻止您在 周圍創建自己的層rm,無論是作為函式還是腳本。(我個人更喜歡腳本。)

將其複製到文件yrm中,將其放在您$PATH(例如/usr/local/bin)中的目錄中,並使其可執行(chmod a+x /usr/local/bin/yrm):

#!/bin/sh
#
fails=0    # Number of failures is presented as exit status

for item in "$@"
do
   # Skip directories
   if [ -d "$item" ]
   then
       printf '%s: skipping directory\n' "$item" >&2
       fails=$((fails+1))
       continue
   fi

   # Prompt the user
   printf "%s: remove regular file '%s' (Y/n)? " "${0##*/}" "$item" >&2
   read yn || exit $((fails+1))

   # Either no response or "y" is good enough for deletion
   if [ -z "$yn" ] || [ y = "$yn" ]
   then
       rm "$item" </dev/null    # No -f so we expose error messages
       [ $? -gt 0 ] && fails=$((fails+1))
   fi
done

# Report failures (0=success)
exit $fails

然後,您可以在沒有標誌和一個或多個文件的情況下呼叫它。例如,

yrm *.txt

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