Я в настоящее время в каталоге со многими каталогами.

$ ls
the bad icons 100                 the games icons 100
the beach & camping icons 100          the halloween icons 100

Как мне извлечь все png-файлы, которые соответствуют следующему пути, и вывести их в каталог?

/{iconPackFolderName}/png/colored/512x512/*.png

2 ответа2

1

Ты пробовал это

mv /{iconPackFolderName}/png/colored/512x512/*.png {TargetDirectory}

Если вы получили сообщение о том, что файлов слишком много, а команда слишком длинная, попробуйте

echo /{iconPackFolderName}/png/colored/512x512/*.png | xargs mv --target-directory {TargetDirectory}
0

Поскольку вы уже в каталоге, вы можете использовать . с находкой:

find . -path "*/png/colored/512x512/*.png" -exec mv -t TARGETDIR {} +

Если вы хотите сначала просмотреть найденные файлы, удалить -exec и последующие (или заменить его на | less), команда find выведет имена файлов в stdout по умолчанию, как в:

find . -path "*/png/colored/512x512/*.png" | less

Возможно, вы захотите , чтобы опция mv 's -i, --interactive запрашивала перед перезаписью, если есть конфликтующие имена файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .