Você pode fazer as duas operações de uma só vez em find
:
find . -depth \( -regex '.*\.\(txt\|tex\|csv\)' -exec mv -- {} . \; \
-o -not -name . -delete \)
-
-regex '.*\.\(txt\|tex\|csv\)' -exec mv -- {} . \;
encontrará os arquivos com.txt
ou.tex
oucsv
extensões e os moverá para o diretório atual -
-not -name . -delete
removerá tudo o mais
Exemplo:
total$ tree
.
├── test1
│ ├── some.py
│ └── test1.txt
├── test2
│ ├── somedir
│ └── test2.tex
└── test3
└── test3.csv
total$ find . -depth \( -regex '.*\.\(txt\|tex\|csv\)' -exec mv -- {} . \; -o -not -name . -delete \)
total$ tree
.
├── test1.txt
├── test2.tex
└── test3.csv