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.txtou.texoucsvextensões e os moverá para o diretório atual -
-not -name . -deleteremoverá 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