Программы
Как на Bash получить файлы, изменённые за сегодняшний день

Как на Bash получить файлы, изменённые за сегодняшний день

Bash имеет огромные возможности по программированию/скриптованию и администрированию операционной системы. Не важно: Linux это, FreeBSD, или MacOS – на Bash можно сделать многое.

Bash не всегда очевиден, но безусловно силён. Базовые концепции Unix-философии сделали написание скриптов и однострочников на нём сравнительно простым, а мощь программ – почти безграничной.

Но хватит пафоса, это лишь небольшой рецепт, в котором мы используем команду ls для получения списка файлов, однако, с параметром, о котором редко вспоминают: --time-style – получим вывод даты в удобном нам формате. А именно выполним следующую команду:

$ ls -al --time-style=+%D
total 122012
drwxrwxr-x  16 root   syslog  4096 11/27/19 .
drwxr-xr-x  14 root   root    4096 10/15/17 ..
-rw-r--r--   1 root   root       0 09/30/19 alternatives.log
-rw-r--r--   1 root   root     477 09/29/19 alternatives.log.1
-rw-r--r--   1 root   root     177 08/01/19 alternatives.log.2.gz
-rw-r--r--   1 root   root    3286 05/01/19 alternatives.log.3.gz
-rw-r--r--   1 root   root    1460 04/29/19 alternatives.log.4.gz
-rw-r--r--   1 root   root    3548 10/16/17 alternatives.log.5.gz
...

Так мы вывели дату последней модификации в американском стиле (MM/DD/YYYY). Теперь с помощью grep и date мы отфильтруем файлы, которые принадлежат именно к текущей дате:

$ ls -al --time-style=+%D | grep $(date +%D)
drwxrwxr-x  16 root   syslog              4096 11/27/19 .
drwxr-xr-x   2 root   root                4096 11/27/19 atop
-rw-r-----   1 syslog adm              2232669 11/27/19 auth.log
-rw-rw----   1 root   utmp            40578048 11/27/19 btmp
-rw-rw-r--   1 root   utmp              292292 11/27/19 lastlog
drwxr-xr-x   2 root   adm                 4096 11/27/19 nginx
-rw-r--r--   1 root   root                   0 11/27/19 popularity-contest.0
-rw-r--r--   1 root   root               33740 11/27/19 popularity-contest.new
-rw-r-----   1 syslog adm                34597 11/27/19 syslog
-rw-r-----   1 syslog adm              1027129 11/27/19 syslog.1
-rw-rw-r--   1 root   utmp                6528 11/27/19 wtmp

Но это только файлы за сегодня в текущей директории. Теперь добавим рекурсивный обход текущей директории, чтобы сделать ls -la на все файлы, что содержатся в текущей папке и подпапках:

find . -type f -print \
  | xargs ls -al --time-style=+%D \
  | grep $(date +%D)

С помощью find получаем список всех файлов, включая файлы поддиректорий. А xargs передаёт их аргументами нашей команде ls.

Если же вас не устраивает такой вывод столбиком с кучей лишних данных, а нужны только названия файлов – используем небольшую программку на awk:

find . -type f -print \
  | xargs ls -al --time-style=+%D \
  | grep $(date +%D)
  | awk 'BEGIN {FS="[ \t]+|\\|"} {print $7}'

– плюсом ко всему перечисленном ещё и делим по пробельным символам и выводим 7-ой столбец, где и находится имя файла.

Также может быть вам интересно:

Как установить часовой пояс в Linux

В рамках первичной настройки Операционной Системы важно установить и по какому времени вы живёте, ведь при следующем обновлении времени через Интернет ваше время слетит.

Читать »

Зачем писать "hello world"?

Немного размышлений об одной из самых известных программ для обучения программированию.

Читать »
Фото Как настроить отправку почты из Django

Как настроить отправку почты из Django

Письма об ошибках, отчёты на почту, восстановление паролей - всё это полезно при работе с сайтом. Django предоставляет удобный способ это сделать с минимумом настроек!

Фото Добавляем поддержку медиа-файлов в Django проект

Добавляем поддержку медиа-файлов в Django проект

Современные сайты редко ограничиваются только текстом и вёрсткой. Часто в заметках красуются фотографии, а рядом с описанием товаров - их изображения.

Фото Настройка журналирования (логирования) в Python с примерами

Настройка журналирования (логирования) в Python с примерами

Во время работы программы часто нужно сохранять некоторые важные записи о процессе выполнения команды. В Python есть довольно мощный модуль для работы с логами - давайте разберёмся с тем, как его использовать.

Фото Так ли безопасен Linux? Несколько коммитов с уязвимосятми в stable

Так ли безопасен Linux? Несколько коммитов с уязвимосятми в stable

Исследователи сумели пройти code-review с реквестами в ядро Linux, заведомо содержащими добавление уязвимостей.

Фото Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

В Django вы можете передавать данные в шаблоны посредством контекстов. Контекст передаётся из контроллера (view в терминах Django), однако, если одни и те же данные нужны в разных местах, лучше сделать свой контекст-процессор.

Фото Пример своей консольной команды в Django проекте

Пример своей консольной команды в Django проекте

Если вы работали с Django проектом, то, скорее всего, запускали команды из консоли (manage.py). В Django есть простой способ писать свои команды для управления проектом.

Фото Разграничение прав доступа на Django сайте

Разграничение прав доступа на Django сайте

Почти на любом веб-сайте необходимо разделять пользователей на группы и предоставлять им разные возможности. В Django есть довольно серьёзная система прав доступа для пользователей - давайте её рассмотрим!

Фото Пользователи и их создание в Django - своя регистрация на сайте

Пользователи и их создание в Django - своя регистрация на сайте

Если вашим сайтом должны активно пользоваться несколько человек, то полезно их различать, а значит - надо уметь создавать пользователей, либо предоставлять возможность регистрации Django пользователей.