Попробуйте выполнить эту команду:
cd /Parent directory
find . -name '*.txt' | cpio -pdm /pathtowhereyouwanttocopy
Этот код просто скопирует файлы .txt и сохранит их в каталоге с родительскими папками.
cpio copies files into an archive. It reads a list of filenames
find searches the directory tree rooted at each given file name
-pdm for overwrite destination content
Я лично использовал rsync для этой цели. Вы можете легко фильтровать файлы по их расширению.
rsync -vr --stats --progress --include="*/" --include "*.txt" --exclude='*' SOURCE DEST
Вы упомянули, что пока вы находитесь на своей машине X, вы хотите получить все файлы, которые находятся на машине Y , В этом случае вы должны сделать это:
scp username@Y:/path/to/directory/on/remote/machine /path/to/destination/on/X/local/machine
Теперь давайте все вместе:
rsync -vr --stats --progress --include="*/" --include "*.txt" --exclude='*' username@Y:/path/to/directory/on/remote/machine /path/to/destination/on/X/local/machine
Вы можете попробовать запустить тест, не копируя ничего, добавив к вашей команде rsync. Это будет имитировать процесс копирования.