Do rm všechny kromě u,p v bash stačí napsat:
rm !(u|p)
To vyžaduje, aby byla nastavena následující možnost:
shopt -s extglob
Zobrazit více:glob – Gregova Wiki
Co v těchto případech dělám, je psát
rm *
Poté stisknu Ctrl +X ,* rozbalit * do všech viditelných názvů souborů.
Pak mohu jen odstranit dva soubory, které si chci ponechat, ze seznamu a nakonec spustit příkazový řádek.
Můžete použít find
find . ! -name u ! -name p -maxdepth 1 -type f -delete
!neguje další výraz-nameurčuje název souboru-maxdepth 1způsobí, že proces hledání zpracuje pouze zadaný adresář (findve výchozím nastavení prochází adresáře)-type fzpracuje pouze soubory (a nikoli například adresáře)-deletesmaže soubory
Poté můžete vyladit podmínky pomocí manuálové stránky find
Aktualizovat
- Mějte na paměti, že pořadí prvků výrazů je důležité (viz dokumentace).
-
Nejprve svůj příkaz otestujte pomocí
-printmísto-deletefind . ! -name u ! -name p -maxdepth 1 -type f -print
Jak mohu použít příkaz tar k seskupení souborů bez komprese?
Získejte seznam otevřených portů v Linuxu