私が確かに知っておくべきだと思うこと:私が表示した場合ls <something>
、rm <something>
まったく同じファイルを削除しls
ますか?表示さrm
れls
なかったファイルを削除できる状況はありますか?(これは18.04 bashにあります)
編集:答えたすべての人に感謝します。完全な答えはすべての答えの組み合わせであると思うので、私は最も回答の多い答えを「答え」として受け入れました。
途中で学んだ予期しないこと:
ls
引数の処理で考えるほど簡単ではない- Ubuntuの単純な未調整インストールでは、.bashrcエイリアス
ls
- コマンドの引数のように見える可能性があるため、ダッシュで始まるファイルに名前を付けないでください。-rという名前を付けると、それが要求されます。
find -delete
より良いでしょうrm
か?あなたは「それが理由」と言いますが、それが何を指しているのか私には完全に不明です。また、find
呼び出しにより、現在のディレクトリ内のすべてのファイルが再帰的にrm
削除され、直接のディレクトリ内のファイルが削除されることに注意してください。また-name *
、ノーオペレーションです。全体として、私はあなたのアドバイスにかなり困惑しています
find
ためのアドバイスは、それを実行し、すべてのファイルを表示し、で同じコマンドを実行できるからだと思います-delete
。からの結果を既に見たのでfind
、削除されるものにあいまいさはないはずです(これについての詳細は回答の形で聞きたいです)
-delete
"で実行できます -しかし、実行するよりも優れているのはls <filespec>
、その後に続くrm <filespec>
(OPはすでにその方法を知っています)?
find ... -print
最初に実行して削除するファイルを確認し、その後find ... -delete
、2つのコマンドの間に作成されたファイルを削除します。-print
との両方を使用すると-delete
、確認は行われず、削除された内容の事後レポートだけが表示されます(使用することもできますrm -v
)。
rm
がないことに少し驚いてい--dry-run
ます