GNU/Linux >> Znalost Linux >  >> Linux

Bash skript pro odstranění všech souborů kromě N při abecedním řazení

Následující řádek by měl stačit.

ls -F world*.zip | head -n -5 | xargs -r rm
  • ls -F :Seznam souborů podle abecedy
  • head -n -5 :Odfiltrujte všechny řádky kromě posledních 5
  • xargs -r rm :odstranit každý daný soubor. -r :nespouštějte rm pokud je vstup prázdný

Nemohu to teď otestovat, protože nemám počítač s Linuxem, ale myslím, že by to mělo být:

rm `ls -A | head -5`

Co třeba tohle:

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

Předem to otestujte. To by mělo odstranit všech world*.zip soubory starší než 5 dnů. Takže jiná logika, než máte vy.


Linux
  1. Jak nastavit parametry, když Pipe Bash Script to Bash?

  2. Odstraňte úložiště Git, ale ponechte všechny soubory

  3. Smažte všechny soubory kromě nejnovějších 3 v bash skriptu

  1. Odstraňte odpovídající soubory ve všech podadresářích

  2. Co je špatného na mém bash skriptu, který ponechává posledních x souborů a zbytek smaže?

  3. Bash skript pro odstranění souborů starších než x dní s podadresáři

  1. V Bash, kdy alias, kdy skript a kdy napsat funkci?

  2. Jak mohu odstranit všechny soubory z adresáře, když hlásí příliš dlouhý seznam argumentů

  3. Jak odstranit soubory .fuse_hidden*?