копирование файлов из подпапок через скрипт оболочки grep - PullRequest
0 голосов
/ 24 сентября 2019

Я хочу написать сценарий оболочки, чтобы сделать следующее: у меня есть папка со многими подпапками.В каждой из этих подпапок есть файл * .gz и некоторые другие файлы, которые мне не нужны.Я хочу переместить все файлы .gz в новую подпапку с именем required_files (я уже создал эту подпапку).Поэтому я сделал следующее: я пошел в родительскую папку со всеми вложенными папками и cp / .gz> required_files /., Но это не сработало.Можете ли вы предложить, что я должен делать?

1 Ответ

1 голос
/ 24 сентября 2019

grep здесь не имеет значения.Используйте find:

find . ! \( -type d -name needed_files -prune \) -type f -name '*.gz' \
     -exec echo mv -t needed_files {} +

POSIX-эквивалент этого -exec равно

-exec sh -c 'echo mv "$@" needed_files' _ {} +

Если его вывод выглядит хорошо, удалите echo.

Btw Iзаметил, что в заголовке написано copy , но вы также говорите Я хочу переместить , поэтому решите, что именно вы хотите сделать, и дайте мне знать, чтобы я мог отредактировать свой ответ.

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