Intereting Posts
изменить форматирование форматирования на основе cwd как сделать доступную только для чтения файловую систему на busybox? Сетевое пространство имен, ssh, X11 Как я могу получить HASH главного ключа LUKS? «Build_packages» снова загружает все библиотеки в случае неудачной сборки? Почему первый комментарий к файлу .sh необходим? Ошибка lsusb – не может получить идентификатор / дескриптор устройства: ресурс временно недоступен OpenSUSE – беспроводная клавиатура Apple – переключатель «fn» и «ctrl»? Средство просмотра PNG, которое может отображать метаданные текстовых фрагментов Предоставить перенаправление на команды, используемые в составных командах Ошибка установки linux-firmware_1.157.10: «невозможно удалить» /lib/firmware/brcm/brcmfmac43362-sdio.bin ': разрешение отклонено. " Имя> org.freedesktop.PolicyKit1 не было предоставлено никакими файлами .service ищет легкий вес Linux для старого 104 шт Как прокомментировать код LaTeX в Gedit? Если строка соответствует в файле, как выводить конкретную строку (строки), которая не встречается на определенном расстоянии от сопоставленной строки?

Параметры поиска mtime и ctime

Я только что создал текстовый файл yyy в своем домашнем каталоге. Я изменил его как с touch yyy и отредактировал его вручную.

Затем я хотел найти этот файл (и другие) через:

 find ~/ -type f -mtime 1 -ctime 1 | grep yyy 

но yyy не отображается. В человеке находки написано:

-ctime n: Состояние файла в последний раз изменено n * 24 часа назад. …

-mtime n: данные файла были в последний раз изменены n * 24 часа назад. …

Поэтому мой первый вопрос :

Почему не найдено yyy

Мой второй вопрос :

Изменен ли статус файла файла: Изменено содержимое файла и разрешения файла & …?

Имеет ли измененные данные файл: Изменено содержимое файла?

Да, «измененные данные файла» ( mtime ) означает, что контент был изменен. Эта дата может быть изменена вручную (например, при touch ).

Да, «статус измененного файла» ( ctime ) означает, что либо изменен контент, либо метаданные файла (разрешение, владелец и т. Д.). Это невозможно изменить вручную.

Пример:

 $ date > foo $ ls -l --full-time foo; ls -lc --full-time foo # Both times have changed -rw-r--r-- 1 xhienne xhienne 29 2017-01-18 13:40:07.677161702 +0100 foo -rw-r--r-- 1 xhienne xhienne 29 2017-01-18 13:40:07.677161702 +0100 foo $ chmod or foo $ ls -l --full-time foo; ls -lc --full-time foo # Only ctime has changed -rw-r----- 1 xhienne xhienne 29 2017-01-18 13:40:07.677161702 +0100 foo -rw-r----- 1 xhienne xhienne 29 2017-01-18 13:40:29.601161310 +0100 foo $ date >> foo $ ls -l --full-time foo; ls -lc --full-time foo # Again, both times have changed -rw-r----- 1 xhienne xhienne 58 2017-01-18 13:40:51.297160921 +0100 foo -rw-r----- 1 xhienne xhienne 58 2017-01-18 13:40:51.297160921 +0100 foo 

Ваш файл не найден, потому что ваш find предикаты -mtime 1 и -ctime 1 ищут файл, который был изменен вчера (точнее, между 24 ч назад и 48 ч назад). Для файла, который был изменен сегодня, используйте либо -mtime 0 или -mtime -1 (то же самое для -ctime ).

Пример:

 $ find -name foo -mtime 1 -ctime 1 $ find -name foo -mtime 0 -ctime 0 ./foo $ find -name foo -mtime -1 -ctime -1 ./foo