GNU/Linux >> Linux の 問題 >  >> Linux

アルファベット順に並べ替えたときに N 個のファイルを除くすべてを削除する Bash スクリプト

次の行でうまくいくはずです。

ls -F world*.zip | head -n -5 | xargs -r rm
  • ls -F :ファイルをアルファベット順にリストします
  • head -n -5 :最後の 5 行を除くすべての行を除外
  • xargs -r rm :指定された各ファイルを削除します。 -r :rm を実行しないでください 入力が空の場合

Linux マシンを持っていないので、今はテストできませんが、次のようにすべきだと思います:

rm `ls -A | head -5`

これはどうですか:

find /your/directory -name 'world*.zip' -mtime +5 | xargs rm

事前にテストしてください。これにより、すべての world*.zip が削除されます 5 日以上経過したファイル。つまり、あなたとは異なる論理です。


Linux
  1. すべてのファイルを取得しますが、ファイルは配列内にあります– Bash?

  2. Git リポジトリを削除しますが、すべてのファイルを保持します

  3. bashスクリプトで最新の3つを除くすべてのファイルを削除します

  1. すべてのサブディレクトリで一致するファイルを削除します

  2. 最後の x 個のファイルを保持し、残りを削除する bash スクリプトの何が問題になっていますか?

  3. ディレクトリ内の 1000 個を除くすべてのランダム ファイルを削除する

  1. Bashでは、いつエイリアスを作成し、いつスクリプトを作成し、いつ関数を作成するのですか?

  2. 引数リストが長すぎると報告されたときに、ディレクトリからすべてのファイルを削除するにはどうすればよいですか

  3. .fuse_hidden* ファイルを削除するには?