Как избежать копирования определенного формата файла с помощью команды cp - PullRequest
1 голос
/ 16 мая 2019

Я использую команду cp в скрипте ma bash

cp /source/* /destination 

Я просто хочу избежать копирования всех файлов .txt из моего источника в место назначения.

Ответы [ 3 ]

6 голосов
/ 16 мая 2019

Если включена расширенная глобализация, вы можете сопоставить все файлы, кроме txt:

cp /source/!(*.txt) /destination

*.txt соответствует всем текстовым файлам. !(...) говорит, что оно соответствует всему, кроме того, что в ... части.

1 голос
/ 16 мая 2019

Я не знаю, можете ли вы сделать это в копии, но команда rsync обладает такой способностью. Попробуйте

rsync -av / source / * / destination --exclude "* txt".

См. https://www.howtogeek.com/168009/how-to-exclude-files-from-rsync/ для более подробной информации и примеров.

0 голосов
/ 16 мая 2019

Попробуйте

find . -maxdepth 1 -type f \( ! -iname "*.txt" \) -print0 | xargs -0 cp {} /destination

-print0 и -0 необходимы для обработки файлов, в имени которых могут быть пробелы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...