У меня есть каталог с более чем 1000 файлами, а некоторые из них - .zip-файлы, и я хочу превратить их все в .tgz-файлы.
Я хочу использовать grep для создания списка имен файлов. Я пробовал «grep * .zip» безрезультатно. Читая страницы руководства, я думал, что * был универсальным селектором. Почему это не работает?
Спасибо.
Вместо этого вы должны использовать find.
find <dir> -iname \*.zip
Пример: для поиска всех .zip файлов в текущем каталоге и во всех подкаталогах попробуйте это:
find . -iname \*.zip
Здесь будут перечислены все файлы, заканчивающиеся на .zip в отношении случая. Если вам нужны только те, у кого с младшим изменением -iname на -name
Команда grep ищет укусы в файлах, а не файлы. Вы можете использовать его с find, чтобы перечислить все ваши .zip файлы, такие как
find . |grep -e "\.zip$"
По умолчанию Grep использует регулярные выражения. Вы хотите использовать выражение:
grep .zip $
Возможно, вы захотите использовать find.
find. -name '* .zip'
Или вы можете найти find в grep
find . | grep .zip$