Какова дата изменения отчетов ls для каталогов в оболочке Bash?

когда я запускаю ls -l в bash shell указывается время модификации файлов и каталогов. Как отмечено в этой теме, время изменения для каталогов не отражает все его содержимое. Это также, кажется, не затронуто изменением имени каталога. Что именно отражает время изменения каталога?

это время последнего изменения файла (или каталога) на верхнем уровне каталога?

5
задан Community
источник

2 ответов

обратите внимание, что в Unix каталог не "содержит" файлы в нем. Скорее, он содержит ссылки на них. Смотрите link(2) системный вызов для получения дополнительной информации.

Это означает, что "прямые" содержимое каталога представляет собой список имен файлов и соответствующих i-числа. Поэтому дата изменения каталога указывает, когда этот список изменился. Операции, которые могут вызвать такие изменения будут включать, но не обязательно ограничиваться следование:

  • создание нового файла в каталоге
  • удаление (или, скорее, unlink(2)ing) файл из директории
  • переименование файла в директории
  • жесткая компоновка файла в другом месте каталога
9
отвечен Dolda2000 2014-02-06 10:19:35
источник

думайте о каталоге как о простом файле, содержащем список других файлов. Всякий раз, когда вы изменяете его содержимое (переименовываете файлы, добавляете или удаляете содержащиеся файлы), время изменения каталога изменяется.

3
отвечен stant 2014-02-04 14:44:57
источник

Другие вопросы bash ls unix