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-name
určuje název souboru-maxdepth 1
způsobí, že proces hledání zpracuje pouze zadaný adresář (find
ve výchozím nastavení prochází adresáře)-type f
zpracuje pouze soubory (a nikoli například adresáře)-delete
smaž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í
-print
místo-delete
find . ! -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