web-dev-qa-db-ja.com

確認せずにファイルを削除する

ユーザーがファイルの削除に同意するかどうかを確認せずにファイルを削除する方法を教えてください。シェルスクリプトを書いていてrm関数を使っていますが、 "通常のファイルを削除しますか?そして私は本当にこれを必要としません。ありがとうございました。

83
hey

rmrm -iにエイリアスされているかもしれないので、これを試してください:

/bin/rm -f file.log

エイリアスを確認するには、aliasを実行します。

97
chown

Forceフラグはすべてのプロンプトを削除します。

rm -f {file}

52
lynks

力が一緒にいるように - rm -f

27
manojlds

ファイルを削除するために必要な権限があり、プロンプトを表示したくない場合は、次のようにします(-f = force)。

rm -f file

ファイルへのアクセス許可がない場合は、次のものを使用する必要があります。

Sudo rm -f file
5
Kassym Dorsel

シェルスクリプト内では、rm -f <filename>を使用したいと思いますが、シェル(またはプロファイル)に-iを入力することで、環境の暗黙のunalias rmオプションを削除することもできます。

5
Musannif Zahir

yesプログラムはすべてのプロンプトに対してyesと繰り返し答えます。それであなたはそれを対話的なrmプログラムにパイプして望みの効果も得ることができます。

yes | rm <filename>

逆に、対話的なことをしたくない場合は、そうすることができます。

yes n | <something interactive>

そしてそれは入力ストリーム上で 'n'を繰り返します(事実上質問にnoと答える)

4
mholm815
\rm file

バックスラッシュ\はエイリアスをバイパスします。

3
teknopaul

-fパラメータを使用する以外に、代わりにfindコマンドを使用することもできます。

find -name file.log -delete
1
kenorb

これを行うための私のお気に入りの方法は、bashでcommandコマンドを使用することです。Sudoを使用するのと同じ方法です。これは、/bin/rm(おそらくrmrm -iとしてエイリアスされる)で実行するのと同じように、エイリアスなしでコマンドを実行します。

例:

command rm -f /tmp/file.txt
0
PatrykMilewski

あなたのrmrm -iにエイリアスされている場合は、unalias rmを使います。

書き込み保護されたファイルを本当に削除したくない場合以外は、rm -fを直接使用しないでください。 -fを使うには非常に良い理由があるはずです。

ただし、書き込み保護されたファイルがたくさんある場合は、速度を上げるためにrsync -r --delete empty/ removed_dir/をお勧めします。

0
Zhu Jinxuan

現在私はシステムで働いています、そこでbashシェルはrmコマンドの定義をグローバル設定ファイルの1つの中の関数として受け取りました:

 rm  () { /bin/rm -i ${1+"$@"}; }

したがって、エイリアスに関する上記の回答はどれもうまくいきませんでした。迷惑な動作に対抗するために、私は自分の.bashrcファイルでrm関数の設定を解除しました。

 unset -f rm

私は開幕戦と同様の問題を抱えていた。しかし、rmがShell関数によって隠されている可能性を述べた答えは見つかりませんでした。だから私はそれが同じ種類の問題に直面している誰かの助けになることを願ってここに答えを加えました。

/bin/rmまたはrm -fを常に入力するのは不便であり、悪い結果をもたらす可能性があります(rm -fの場合)。

0
daw