Нет, не существует (напрямую).
Родные файловые системы Linux/Unix поддерживают несколько временных меток для каждого файла (по крайней мере, время последнего изменения mtime
, время изменения inode ctime
и время последнего доступа (или чтения) atime
. Стандартные утилиты резервного копирования в основном смотрят на временную метку mtime
для определения последнего изменения файла, чтобы определить, включать ли данный файл в инкрементную резервную копию. Это более гибко, чем архивный бит, поскольку системы резервного копирования могут запускать инкрементную резервную копию против любой полной резервной копии, просто сравнивая mtime
для каждого файла с временной меткой полной резервной копии.
Если вы специально ищете поведение бита архива, потому что собираетесь использовать его для чего-то другого, кроме вычисления инкрементных наборов файлов резервного копирования, вам нужно более подробно описать, чего вы пытаетесь достичь.
Тем не менее, вы можете имитировать поведение архивного бита, используя временную метку mtime
, поскольку вы можете установить метку mtime
из командной строки или из вашей собственной программы. Например, предположим, что для ваших целей вы определили, что mtime
равное 0
(UNIX "epoch") означает то же самое, что и сброс архивного бита. Затем, если файл будет изменен, операционная система установит mtime
в метку времени последней модификации (и таким образом mtime
больше не будет 0
, что можно интерпретировать как то, что бит архива был установлен).
Вы можете установить mtime
из сценария оболочки, используя touch
(см. man touch
), и многие инструменты оболочки, такие как find
, поддерживают поиск с использованием mtime
. Начиная свою собственную программу на C или другом языке, начните с man-страниц stat(2) и utimes(2).