як щодо того, щоб ви спочатку скопіювали це
cp -r /old/folder /new/folder
потім перейдіть до нової папки та запустіть
find . -type f ! -iname "*.txt" -delete
або просто
cp -r /old/folder /new/folder && find . -type f ! -iname "*.txt" -delete
Редагувати: добре, ви хочете одну команду, яка фільтрує (я цього не перевіряв, оскільки моя система не має cpio
команди!). Ось де я його знайшов: http://www.gnu.org/software/findutils/manual/html_mono/find.html#Copying-A-Subset-of-Files
find . -name "*.txt" -print0 |
cpio -pmd0 /dest-dir
Спершу протестуйте це, оскільки я ще цього не пробував. Якщо хтось перевірить, це було б чудово.