GNU/Linux >> Znalost Linux >  >> Linux

Jak odstranit/smazat pouze spustitelné soubory (aka soubory bez přípony).

můžete běžet

find . -perm +100 -type f -delete

Tady to je:

ls | grep -v "\." | xargs rm

grep -v říká "povolit pouze názvy souborů, které neobsahují tečku" a xargs rm říká "pak předejte seznam názvů souborů do rm ".

."

Použijte find . Co chcete, je toto:

find . -type f -executable -exec rm '{}' \;

Odebrání všeho bez přípony lze také provést:

find . -type f -not -iname "*.*" -exec rm '{}' \;

První možnost neodstraní Makefile , a je tedy třeba upřednostňovat. Myslím, že odpověď kcwu ukazuje pěkný způsob, jak zlepšit výše uvedené pomocí -delete možnost :

find . -type f -executable -delete
find . -type f -not -iname "*.*" -delete

Upravit :Používám GNU findutils find , verze 4.4.0, pod Ubuntu 8.10. Nevěděl jsem o -executable přepínač je tak neobvyklý.


Linux
  1. Jak získat pouze soubory vytvořené po rande s Ls?

  2. Jak odstranit všechny soubory s konkrétní příponou v konkrétní složce?

  3. Jak najít a odstranit prázdné adresáře a soubory v Unixu

  1. Jak najít a odstranit prázdné adresáře a soubory v Linuxu

  2. Jak odstranit všechny soubory v adresáři kromě některých?

  3. Jak získat pouze jména z příkazu find bez cesty

  1. Jak hledat soubory podle velikosti a přípony?

  2. Příkaz Linux:Jak „najít“ pouze textové soubory?

  3. Jak najít pouze adresáře bez podadresářů?