Легко использовать grep
(или awk
или sed
или perl
и т. Д.), Чтобы удалить такие каталоги из find Вывод
:
find /path/to/directory -type d | grep -vE '/[0-9-]+(/|$)'
Примечание: я включил -
в символьный класс, потому что каталоги с датами иногда имеют формат ГГГГ-ММ-ДД, а не просто ГГГГММДД
Ведение журнала на системную консоль — это особый случай направления вывода журнала на любой реальный терминал или виртуальное терминальное устройство ядра. Там нет когда-либо -растущего буфера ядра. То, что прокручивается в верхней части экрана терминала, теряется.
Однако это плохая идея для регистрации WWW-сервера.
Извлеките урок из " Bash отображает тарабарщину после определенного входящего запроса " и не предоставляет злоумышленникам средства для записи произвольных данных на ваши терминалы, особенно на вашу системную консоль .
И не думайте, что безопасность в локальной сети не нужна. Всегда защищенные серверы, принимающие данные по любой сети.
Стандартная ошибка и стандартный вывод вашего процесса должны быть подключены к каналу, другой конец которого является одним из инструментов, упомянутых вhttps://unix.stackexchange.com/a/505854/5132:
./thing-to-be-logged 2>&1 | cyclog logs/
Эти инструменты гарантируют, что файлы в logs/
занимают не более указанного объема дискового пространства, и выполняют ротацию журналов автоматически и в нужных точках. Просмотр журналов даже с помощью чего-то такого простого, как less
, гарантирует, что предоставленные злоумышленником -данные очищены (до уровня ), а не просто переданы на терминальное устройство, как -. (Конечно, не используйте опцию -R
для less
.)