Как я могу узнать, какой файл был изменен несколько минут назад?

Я хочу транспортировать конфигурацию от одного пользователя к другому. Но я не знаю, в котором регистрируют рассматриваемые хранилища программы ее конфигурация.

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

Я знаю о find . -mmin -10 -ls но существуют довольно многие в выводе, и я хотел бы результат, заказанный к прошлому разу изменения. К сожалению, дата где-нибудь посреди ls вывод той команды.

2
задан 30 December 2019 в 22:53

1 ответ

Давайте посмотрим на несколько примеров использования find:

  1. с -ls директива:

    $ find /var/log -maxdepth 1 -mmin -30 -ls
    15533117     60 -rw-r--r--   1 root     wheel       60616 Jan  2 09:46 /var/log/daily.out
    15955192     12 -rw-r-----   1 root     admin        8638 Jan  2 10:00 /var/log/system.log
    15870477    132 -rw-r-----   1 root     admin      117797 Jan  2 09:45 /var/log/wifi.log
    1081546  32088 -rw-r--r--   1 root     admin    31966363 Jan  2 09:46 /var/log/install.log
    

    Очевидно очень трудно к виду.

  2. использование -ls и -printf

    $ find /var/log -maxdepth 1 -mmin -30 -ls -printf '%T+'
    15533117     60 -rw-r--r--   1 root     wheel       60616 Jan  2 09:46 /var/log/daily.out
    2020-01-02+09:46:36.1361086600 15955192     12 -rw-r-----   1 root     admin        8710 Jan  2 10:06 /var/log/system.log
    2020-01-02+10:06:54.3077120650 15870477    132 -rw-r-----   1 root     admin      117797 Jan  2 09:45 /var/log/wifi.log
    2020-01-02+09:45:28.8952892010  1081546  32088 -rw-r--r--   1 root     admin    31966363 Jan  2 09:46 /var/log/install.log
    2020-01-02+09:46:04.0508866900
    

    Настоящая путаница с меткой времени, распечатанной на следующей строке без новой строки.

  3. использование -printf только: мы распечатаем mtime, вкладку, путь и новую строку:

    $ find /var/log -maxdepth 1 -mmin -30 -printf '%T+\t%p\n'
    2020-01-02+09:46:36.1361086600  /var/log/daily.out
    2020-01-02+10:06:54.3077120650  /var/log/system.log
    2020-01-02+09:45:28.8952892010  /var/log/wifi.log
    2020-01-02+09:46:04.0508866900  /var/log/install.log
    

    Хорошо, простой. Давайте отсортируем его так, новейшее находится на вершине

    $ find /var/log -maxdepth 1 -mmin -30 -printf '%T+\t%p\n' | sort -r
    2020-01-02+10:06:54.3077120650  /var/log/system.log
    2020-01-02+09:46:36.1361086600  /var/log/daily.out
    2020-01-02+09:46:04.0508866900  /var/log/install.log
    2020-01-02+09:45:28.8952892010  /var/log/wifi.log
    

    И затем просто распечатайте путь

    $ find /var/log -maxdepth 1 -mmin -30 -printf '%T+\t%p\n' | sort -r | cut -f 2-
    /var/log/system.log
    /var/log/daily.out
    /var/log/install.log
    /var/log/wifi.log
    
3
ответ дан 11 January 2020 в 09:46

Другие вопросы по тегам:

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