誤ってファイルが削除されるのを防ぐためにエイリアスを使用しており、ディレクトリでも同様のことをしたいと思います。
ファイルの場合、以下を私のファイルに追加しました.bashrc
。
alias rm="rm -i"
また、誤ってディレクトリを削除しないようにしたいと思います。以下を試しました。
alias rm -rf="rm -rfi"
これ:
alias "rm -rf"="rm -rfi"
しかし、どちらも機能しません。どんな提案がありますか?
答え1
Bash(1)から:
ニックネーム
[...] 各単純コマンドの最初の単語が引用されていない場合は、エイリアス [...] 文字 [...] があることを確認し、上記のシェルメタ文字または引用文字が表示されないことを確認します。エイリアス。
したがって、エイリアスは引用符なしで単語にすることができます。
また、 rm 呼び出しに-f
と の両方を使用する-i
ことはやや矛盾しているので (rm(1)) 意味がありません。
-f、--forceは存在しないファイルとパラメータを無視します。メッセージを表示しない
-私 削除する前に毎回メッセージが表示されます
しかし、それは良いことです。rm
電話をかけてもエイリアスが実際に使用されますrm -r
。なぜなら、最初の単語 - rm
- にエイリアス - があってrm -i
置き換えられるからです!
$ alias rm
bash: alias: rm: not found
$ alias rm='rm -i'
$ mkdir test
$ rm -r test
rm: remove directory ‘test’?
/編集:Raphael Ahrensはまた、コメントから-f
ディレクトリを削除するために(force)を使用する必要はなく、(すでに私の例に示すように)-r
(再帰)で十分であると述べました。
-r, -R, --recursive ディレクトリとその内容を繰り返し削除します。
答え2
エイリアスはrm
危険です。これらのエイリアスが設定されていないボックスにある場合は、少しダメージを与えます。
「誤ってディレクトリを削除するのを防ぐ」ことが-r
このフラグの目的です。
このようなコマンドを無視しないでください。スクリプトがどのような仮定をするかは決してわかりません。必要に応じてこの名前以外の名前を選択しrm
、それ以外の場合はワークフローで何かを変更して機能しないようにしてくださいrm -rf
。