В командной строке Linux я хотел бы скопировать (очень большой) набор .txt
файлы из одного каталога (и его подкаталоги) другому.
Мне нужна структура каталогов для пребывания неповрежденным, и я должен проигнорировать файлы кроме тех, которые заканчиваются в .txt
.
как насчет того, чтобы сначала скопировать его с помощью
cp -r /old/folder /new/folder
, а затем перейти в новую папку и запустить
find . -type f ! -iname "*.txt" -delete
или просто
cp -r /old/folder /new/folder && find . -type f ! -iname "*.txt" -delete
Edit: ok Вы хотите одну команду, которая фильтрует (я не тестировал это, потому что моя система не имеет команды 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
Please please test this first, because I haven't tried it yet. Если бы кто-нибудь проверил, было бы здорово.