A rm
tutti tranne u,p
in bash basta digitare:
rm !(u|p)
Ciò richiede l'impostazione della seguente opzione:
shopt -s extglob
Per saperne di più:glob - Wiki di Greg
Quello che faccio in questi casi è digitare
rm *
Quindi premo Ctrl +X ,* per espandere *
in tutti i nomi di file visibili.
Quindi posso semplicemente rimuovere i due file che mi piace tenere dall'elenco e infine eseguire la riga di comando.
Puoi usare find
find . ! -name u ! -name p -maxdepth 1 -type f -delete
!
nega l'espressione successiva-name
specifica un nome file-maxdepth 1
farà in modo che find process solo la directory specificata (find
per impostazione predefinita attraversa le directory)-type f
elaborerà solo i file (e non per esempio le directory)-delete
eliminerà i file
Puoi quindi regolare le condizioni guardando la pagina man di find
Aggiorna
- Tieni presente che l'ordine degli elementi delle espressioni è significativo (vedi la documentazione)
-
Prova prima il tuo comando usando
-print
invece di-delete
find . ! -name u ! -name p -maxdepth 1 -type f -print