se você realmente quiser usar padrões bash, faça isso:
user@remote:~$ ls del/
1 2 3
user@desktop:~$ ssh remote.example 'PATTERN="!(1|2)" bash -O extglob -c "cd del && echo rm \$PATTERN"'
rm 3
Eu prefiro usar o find embora (anexar -delete
se você realmente deseja excluir os arquivos):
user@desktop:~$ ssh remote.example 'cd del && find . ! -path . ! \( -name 1 -or -name 2 \)'
./3
Exemplo com diretórios:
user@remote:~/del$ tree -F
.
├── 1/
│ └── 11/
├── 2/
│ └── 22/
└── 3/
└── 33/
user@remote:~/del$ find . -maxdepth 1 -type d '!' -path . ! \( -name 1 -or -name 2 \) -print0 | xargs -0 echo rm -r
rm -r ./3