Как я могу искать имена файлов, которые запускаются с xy_* и создаются/редактируются сегодня?

У меня была такая же проблема в рамках развертывания ИЦ в AWS S3.

Это то, что я сделал для рекурсивного gzipping каталога (на месте) без суффикса .gz:

find . -type f -exec gzip "{}" \; -exec mv "{}.gz" "{}" \;

Кажется достаточно чистым для меня. Но да, похоже, что вам нужен mv где-то там.

Если вы используете grunt, вы можете посмотреть на grunt-contrib-compress. Некоторые из инструментов grunt, специально предназначенные для установки в S3, будут работать и с gzip.

0
06.06.2014, 09:35
2 ответа

Зачем использовать grep, find может сделать работу:

find /home/USER/logfilesError/ -maxdepth 1 -type f -name "xy_*" -daystart -mtime -1
1
28.01.2020, 02:37

По звукам этого файла вы ищете -name:

find /path -maxdepth 1 -type f -name 'xy_*' -daystart -mtime -1 -exec grep -H ERROR {} +

Из man find:

-name pattern

Base of file name (путь с удаленными ведущими директориями) совпадает с шаблоном оболочки. Мета-символы ('*', '?' и '[]') совпадают с '.' в начале базового имени (это изменение в финдутиле-4.2.2; см. раздел КОНФОРМАНЦИЯ СТАНДАРТНЫХ ИНФОРМАЦИЙ ниже). Чтобы игнорировать директорию и файлы под ней, используйте -prune; см. пример в описании -path. Брекеты не распознаются как специальные, несмотря на то, что некоторые оболочки, включая Bash imbue, имеют особое значение в шаблонах оболочек. Сопоставление имен файлов осуществляется с помощью функции библиотеки fnmatch(3). Не забудьте заключить шаблон в кавычки, чтобы защитить его от расширения оболочкой.

1
28.01.2020, 02:37

Теги

Похожие вопросы