rmの-fオプションは実際に何を意味しますか?

rmの-fオプションは実際に何を意味しますか?

GNU coreutilsのマニュアルページを読むと、マニュアルによると、オプションのrm1つは次のようになります。-f

-f, --force
          ignore nonexistent files and arguments, never prompt

今、いくつかのテストを実行し、次のようなものを使用すると、

rm -f /nonexisting/directory/

文句を言わないでしょう。

そのような選択によって実際に何が得られますか?

また、最も一般的な「ディレクトリの削除」の例rmは次のとおりです。

 rm -rf /delete/this/dir

しかし、この-rオプションは意味があります-f

ベストアンサー1

この場合、マニュアルページにいくつかの詳細がありません。この-fオプションrmには実際には多くのユースケースがあります。

  • 誤った終了コードの防止
  • メッセージが表示されないようにするには
  • 権限確認バイパス

あなたは正しいです。存在しないファイルを削除することは意味がありませんが、スクリプトで「このファイルを望んでいません。見つかった場合は削除しますが、気にしないでください」と言うことができます。彼らは存在しません。実際にスクリプトに「存在しない」ことが便利なのでset -e(スクリプトによって引き起こされる可能性がある追加の破損を防ぐため)、すべてのエラーが発生すると停止し、rm -rf /home/my/garbageそれよりも簡単ですif [[ -f /home/my/garbage ]]; then rm -r /home/my/garbage; fi

権限の確認に関する注意:ファイルを削除するには、そのファイルに対する書き込み権限が必要です。ファイル自体ではなくディレクトリです。したがって、rootホームディレクトリにアクセスできないファイルがあると仮定すると、sudoこのオプションを使用してそのファイルを削除できます-f。 Gitを使用すると、Gitが作成したオブジェクトファイルに対する書き込み権限を保持しないことがわかります。

-r--r--r-- 1 phunehehe phunehehe 62 Aug 31 15:08 testdir/.git/objects/7e/70e8a2a874283163c63d61900b8ba173e5a83c

したがって、rm使用せずにGitリポジトリを削除する唯一の方法rootrm -rf

おすすめ記事