Что определяет расширение файла время и дата
Все программы и данные хранятся в долговременной (внешней) памяти компьютера в виде файлов.
Файл — это определенное количество информации (программа или данные), имеющее имя и хранящееся в долговременной (внешней) памяти.
Имя файла состоит из двух частей, разделенных точкой: собственно имя файла и расширение, определяющее его тип (программа, данные и т. д.). Собственно имя файлу дает пользователь, а тип файла обычно задается программой автоматически при его создании.
В различных операционных системах существуют различные форматы имен файлов. В операционной системе MS-DOS собственно имя файла должно содержать не более восьми букв латинского алфавита и цифр, а расширение состоит из трех латинских букв, например: proba.txt
В операционной системе Windows в имя файла:
Единицы измерения информации.doc
1. Разрешается использовать до 255 символов.
2. Разрешается использовать символы национальных алфавитов, в частности русского.
3. Разрешается использовать пробелы и другие ранее запрещенные символы, за исключением следующих девяти: /\:*?"<>|.
4. В имени файла можно использовать несколько точек. Расширением имени считаются все символы, стоящие за последней точкой.
Роль расширения имени файла чисто информационная, а не командная. Если файлу с рисунком присвоить расширение имени ТХТ, то содержимое файла от этого не превратится в текст. Его можно просмотреть в программе, предназначенной для работы с текстами, но ничего вразумительного такой просмотр не даст.
Файловая система. На каждом носителе информации (гибком, жестком или лазерном диске) может храниться большое количество файлов. Порядок хранения файлов на диске определяется установленной файловой системой.
Файловая система - это система хранения файлов и организации каталогов.
Для дисков с небольшим количеством файлов (до нескольких десятков) удобно применять одноуровневую файловую систему, когда каталог (оглавление диска) представляет собой линейную последовательность имен файлов. Для отыскания файла на диске достаточно указать лишь имя файла. Если на диске хранятся сотни и тысячи файлов, то для удобства поиска файлы организуются в многоуровневую иерархическую файловую систему, которая имеет «древовидную» структуру (имеет вид перевернутого дерева).Начальный, корневой, каталог содержит вложенные каталоги 1-го уровня, в свою очередь, в каждом из них бывают вложенные каталоги 2-го уровня и т. д. Необходимо отметить, что в каталогах всех уровней могут храниться и файлы.
Для облегчения понимания этого вопроса воспользуемся аналогией с традиционным «бумажным» способом хранения информации. В такой аналогии файл представляется как некоторый озаглавленный документ (текст, рисунок и пр.) на бумажных листах. Следующий по величине элемент файловой структуры называется каталогом. Продолжая «бумажную» аналогию, каталог будем представлять как папку, в которую можно вложить множество документов, т.е. файлов. Каталог также получает собственное имя (представьте, что оно написано на обложке папки).
Каталог сам может входить в состав другого, внешнего по отношению к нему каталога. Это аналогично тому, как папка вкладывается в другую папку большего размера. Таким образом, каждый каталог может содержать внутри себя множество файлов и вложенных каталогов (их называют подкаталогами). Каталог самого верхнего уровня, который не вложен ни в какие другие, называется корневым каталогом.
А теперь полную картину файловой структуры представьте себе так: вся внешняя память компьютера — это шкаф с множеством выдвижных ящиков. Каждый ящик — аналог диска; в ящике — большая папка (корневой каталог); в этой папке множество папок и документов (подкаталогов и файлов) и т.д. Самые глубоко вложенные папки хранят в себе только документы (файлы) или могут быть пустыми.
Путь к файлу. Для того чтобы найти файл в иерархической файловой структуре необходимо указать путь к файлу. В путь к файлу входят записываемые через разделитель "\" логическое имя диска и последовательность имен вложенных друг в друга каталогов, в последнем из которых находится данный нужный файл.
Например, путь к файлам на рисунке можно записать так:
C:\Рефераты\
C:\Рефераты\Физика\
C:\Рефераты\Информатика\
C:\Рисунки\
Полное имя файла.
Путь к файлу вместе с именем файла называют полным именем файла.
Пример полного имени файлов:
C:\Рефераты\Физика\Оптические явления.doc
C:\Рефераты\Информатика\Интернет.doc
C:\Рефераты\Информатика\Компьютерные вирусы.doc
C:\Рисунки\Закат.jpg
C:\Рисунки\ Зима.jpg
В операционной системе Windows вместо каталогов используется понятие «папка». Папка – это объект Windows, предназначенное для объединения файлов и других папок в группы. Понятие папки шире, чем понятие «каталог».
В Windows на вершине иерархии папок находится папка Рабочий стол. (Следующий уровень представлен папками Мой компьютер, Корзина и Сетевое окружение (если компьютер подключен к локальной сети).
Графический интерфейс Windows позволяет производить операции над файлами с помощью мыши с использованием метода Drag&Drop (тащи и бросай). Существуют также специализированные приложения для работы с файлами, так называемые файловые менеджеры.
NTFS (от англ. New Technology File System — «файловая система новой технологии») — стандартная файловая система для семейства операционных систем Microsoft Windows
NTFS заменила использовавшуюся в MS-DOS и Microsoft Windows файловую систему FAT. NTFS поддерживает систему метаданных и использует специализированные структуры данных для хранения информации о файлах для улучшения производительности, надёжности и эффективности использования дискового пространства
FAT (англ. File Allocation Table — «таблица размещения файлов») — классическая архитектура файловой системы, которая из-за своей простоты всё ещё широко используется для флеш-накопителей. Используется в дискетах, и некоторых других носителях информации. Ранее использовалась и на жестких дисках.
Дефрагмента́ция — процесс обновления и оптимизации логической структуры раздела диска с целью обеспечения хранения файлов в непрерывной последовательности кластеров. После дефрагм 4 ентации ускоряется чтение и запись файлов, а, следовательно, и работа программ, ввиду того, что последовательные операции чтения и записи выполняются быстрее случайных обращений
Время файла — это 64-разрядное значение, представляющее число 100-наносекундных интервалов, прошедших с 12:00 утра. 1 января 1601 скоординированного всемирного времени (UTC). Система записывает время файла, когда приложения создают файлы, обращаются к ним и записывают их.
В файловой системе NTFS значения времени хранятся в формате UTC, поэтому изменения в часовом поясе и летнем времени не затрагиваются. Файловая система FAT хранит значения времени на основе местного времени компьютера. Например, файл, сохраненный в 3:12:00 PST в Вашингтоне, отображается как 6:12:00 EST в Нью-Йорке на томе NTFS, но он отображается как 3:12:00 EST в Нью-Йорке на томе FAT.
Метки времени обновляются в различные моменты времени и по различным причинам. Единственной гарантией метки времени файла является то, что время файла правильно отражается при закрытии маркера, который вносит изменения.
Не все файловые системы могут записывать время создания и последнего доступа, а не все файловые системы записывают их одинаковым образом. Например, разрешение на создание времени в файловой системе FAT составляет 10 миллисекунд, а время записи имеет разрешение в 2 секунды, а время доступа — 1 день, поэтому на самом деле это Дата доступа. Файловая система NTFS задерживает обновление времени последнего доступа к файлу до 1 часа после последнего доступа.
Чтобы получить время файла для указанного файла, используйте функцию функции getFileTime . Функции getFileTime копирует создание, Последний доступ и время последней записи в отдельные структуры fileTime . Кроме того, можно получить время файла с помощью функций FindFirstFile и FindNextFile . Эти функции копируют время файла в структуры fileTime в структуре данных Win32 _ Find _ . При записи в файл последнее время записи не обновляется полностью до тех пор, пока не будут закрыты все дескрипторы, используемые для записи.
Чтобы задать время файла для файла, используйте функцию сетфилетиме . Эта функция позволяет изменять время создания, последнего доступа и времени последней записи без изменения содержимого файла. Можно сравнить время различных файлов с помощью функции компарефилетиме . Функция сравнивает два файловых времени и возвращает значение, указывающее, какое время позже или возвращает 0 (нуль), если значения времени равны.
Если планируется изменить время файла для указанных файлов, можно преобразовать дату и время суток в файловый момент с помощью функции SystemTimeToFileTime . Можно также получить системное время в структуре fileTime , вызвав функцию GetSystemTimeAsFileTime .
Чтобы упростить отображение времени в файле для пользователя, используйте функцию филетиметосистемтиме . Филетиметосистемтиме преобразует время файла и копирует месяц, день, год и время суток из времени файла в структуру SYSTEMTIME .
Что дальше
Следующий логичный шаг — защитить свою приватность (и свои данные) при пересылке важных файлов. Для этого их нужно очистить от всей этой шелухи метаданных и оставить только содержимое документа. Как это сделать — в следующей статье. Подписывайтесь, чтобы не пропустить продолжение.
Имя файла состоит из двух частей: собственно имени и его расширения. Друг от друга они отделяются точкой. Расширение облегчает работу операционной системе, явно указывая на то, что должно содержаться в файле. Вместе с тем, это таит в себе определенную опасность: если случайно или намеренно изменить имя файла, станет неочевидно, с помощью какой программы его открывать.
-
Для имен файлов нельзя использовать
- Прямую и обратную косую черту «/» и «\».
- Зарезервированные символы «:», «*», «?» и «|».
- Кавычки любого вида.
- Знаки больше и меньше.
- Большинство знаков, которые можно набрать только при помощи Alt+код.
Дата последнего доступа к файлу
Это свойство легко можно увидеть в Windows. Оно показывает, когда последний раз открывался этот файл, причём необязательно с изменениями. Windows фиксирует сам факт открытия.
Допустим, вы кому-то поручили проанализировать показатели прошлого года по продажам и на их основе составить отчёт. Исходные файлы лежат на Windows-сервере, удалённый доступ к которому есть у всех сотрудников. Два дня спустя вам приносят файл, в котором явно что-то не то с цифрами. Вы идёте на сервер, находите исходные файлы и смотрите на дату последнего доступа. Если она старше этих пары дней, значит сотрудник их вообще не открывал.
Исполняемые (исполнимые) файлы
Что такое время доступа к файлу, время модификации файла и время изменения файла в Linux
Метки времени (timestamps):
Доступ (Access - last access) — время, когда файл был прочитан последний раз. Это время меняется при доступе таких системных вызовов как mknod(2), utimes(2) и read(2). Если это текстовый файл, то дата последнего доступа обновляется при каждом его открытии. Если это исполнимый файл, то дата доступа обновится при его запуске.
Но прежде чем придумывать практическое использование времени последнего доступа к файлу (например, чтобы проверить, какие команды запускалась за последний час), нужно учитывать очень важные нюансы. Выше показано, что поддержка определённых меток времени зависит от файловой системы. Ещё поведение меток времени зависит от того, с какими опциями была смонтирована файловая система. Например, при запуске скрипта мы ожидаем, что время доступа к этому файлу изменится на текущее. Это так — для выполнения скрипта его нужно прочитать и atime должна поменяться на время выполнения. Обычно это так и происходит. Но если запускаемый/читаемый файл находится в файловой системе, которая смонтирована с опциями noatime или relatime (или другими возможными опциями, которые могут повлиять на изменение atime — к пример «только чтение»), то поведение будет другим.
noatime
Не обновлять на этой файловой системе время доступа к иноде (например, для ускорения производительности за счёт исключения ненужных операций)
relatime
Обновлять время доступа к иноде относительно времени модификации или изменения. Время доступа обновляется только если предыдущее время доступа было более старым, чем время модификации или изменения, либо если предыдущее время доступа старше 1 дня.
Итак — время последнего доступа к файлу может быть неточным! По сути, если при монтировании диска используется опция relatime, то получается, что оно показывает:
1) время последнего изменения или модификации файла
2) время сегодняшнего первого открытия файла
3) ИНОГДА оно действительно показывает время последнего доступа к файлу (если сегодня файл открывали только один раз), либо если этот доступ к файлу выполнен после его модификации или изменения статуса
Модифицирован (Modify - last modified) — время последнего изменения содержимого файла. То есть если это текстовый файл, то время модификации поменяется когда вы его откроете и удалите какое-то слово или что-то допишите. Меняется системными вызовами mknod(2), utimes(2) и write(2).
Изменён (Change - last changed) — Время последнего изменения метаданных файлов в файловой системе. То есть если в файле изображения вы измените EXIF метаданные — это будет модификация (поскольку по сути поменяется содержимое файла). Примером Изменения файла является смена разрешений доступа к нему (чтение, запись, выполнение), смена владельца, группы и т. д. Меняется с chmod(2), chown(2), link(2), mknod
Геопозиция
Эти данные сейчас по умолчанию добавляет к фотографии каждый смартфон и каждая умная камера. Чаще всего они записывают географические координаты, иногда высоту над уровнем моря. Это удобно, когда вам нужно отсортировать фото из поездки по разным городам — телефоны уже делают это автоматически.
В обратную сторону это тоже работает: если поделиться с кем-то фотографией, то по геометке человек может узнать, где был сделан снимок. Например, друг присылает вам фото с пляжа и говорит «Смотри, какой классный пляж в Анталии!». А вы открываете свойства и видите, что, судя по координатам, фото сделано на пляже в Сочи:
Специальные файлы в среде Windows и др.
Расширение | Пояснения |
.tmp , .temp | Временный файл |
.ini | Файл настроек программы или ОС |
.bak | Резервная копия документа в большинстве программ |
.wbk | Резервная копия документа в MS Word |
.reg |
Время файла и CDFS
Метки даты и времени для файлов, расположенных на носителе или исходящих из носителя с использованием файловой системы компакт-диска (CDFS), корректируются для местного часового пояса. ISO 9660 указывает на то, что CDFS правильно отображает сведения о дате для местного часового пояса. Это делается так, что даты для файлов в CDFS отображаются так же, как и в формате универсального диска (UDF). UDF — это новый стандарт для дистрибутивного носителя. Если код зависит от сведений о неизмененной дате для файла, который находится на носителе или исходит из него с помощью CDFS, возможно, он работает неправильно.
Как посмотреть время создания, редактирования и открытия файла в Linux
Сразу все временные метки файла можно посмотреть с помощью команды stat. Запуск очень простой:
Например, я хочу узнать информацию о файле prog.txt:
С временем создания всё понятно — это когда файл был создан. Между прочим, эту информацию программа stat стала показывать довольно недавно. До этого на вопрос «как узнать время создания файла?» знатоки отвечали, что ядро Linux это не поддерживает. В качестве рабочего решения нужно было посмотреть иноду интересующего файла, а затем другой командой посмотреть дату создания этой иноды — это и считалось временем создания файла.
Выше показан вывод для команды на файловой системе ext4. Для файловой системы ext2 дата создания файла по-прежнему недоступна:
Теперь давайте разберёмся, что означают другие метки времени в Linux.
Поиск файлов по времени изменения
Для этого мы опять будем использовать команду find. Для поиска по времени у неё есть следующие опции:
-amin n
Последний раз к файлу был совершён доступ n минут назад.
-atime n
К файлу был совершён доступ n*24 часов назад. Когда find определяет, как много 24-часовых периодов назад к файлу был совершён доступ, любая дробная часть игнорируется, поэтому для соответствия -atime +1 к файлу должен быть сделан доступ по крайней мере два дня назад.
-cmin n
Статус файла был изменён последний раз n минут назад.
-ctime n
Последний раз статус файла был изменён n*24 часов назад. Смотрите комментарий для -atime для понимания, как округление влияет на интерпретацию времени изменения статуса файла.
-mmin n
Данные файла последний раз были изменены n минут назад.
-mtime n
Данные файла были изменены последний раз n*24 часов назад. Смотрите комментарий для -atime для понимания, как округление влияет на интерпретацию времени модификации файла.
То есть если в опции слово min — то число n трактуется как минуты, а если в опции присутствует слово time, то n трактуется как сутки.
В качестве числа n можно указать точное значение, а также выражения «больше чем n» и «меньше чем n» следующими способами:
С find можно строить весьма сложные конструкции условий чтобы найти именно то, что вам нужно. Далее всего несколько примеров — но количество возможностей безгранично. С опцией -name можно указывать шаблон имени, можно комбинировать с поиском по любым другим свойствам файла: размер, права доступа и т.д.
Чтобы найти все файлы, содержимое которых было изменено ровно 50 дней назад:
Чтобы найти все файлы, к которым был получен доступ ровно 50 дней назад:
Чтобы найти все файлы, содержимое которырх было модифицировано более 50 дней назад и менее 100 дней назад:
Чтобы найти файлы, статус которых был изменён за последний час:
Чтобы найти файлы, которые содержимое которых было модифицировано за последний час:
Чтобы найти все файлы, доступ к которым был сделан за последний час:
Чтобы найти все файлы в текущей папке с расширением .php, которые были изменены или созданы за последние 10 дней:
find . -name '*.php' -mtime -10
Чтобы найти все исполнимые файлы в текущей папке, которые были изменены или созданы за последние 10 дней:
Web-страницы и т.п.
Расширение | Пояснения |
.htm , .html | Гипертекстовый документ (Hypertext Markup Language, HTML) |
.mht | Mime HTML |
.xml | |
.php | Php: Hypertext Preprocessor. Язык, интерпретируемый сервером |
.asp | Active Server Pages. Язык, интерпретируемый сервером |
Copyright © 1993–2022 Мацкявичюс Д.А. Все права защищены.
Никакая часть сайта не может быть воспроизведена никаким способом без письменного разрешения правообладателя и явной ссылки на данный ресурс.
Видеофайлы
Расширение | Пояснения |
.avi | |
.flv | Flash Video |
.mpg , .mpeg | |
.mp4 |
Как изменить время создания и модификации файла в Windows
Кстати, если вам интересно, как поменять время создания файла в Windows, то это можно сделать с помощью утилиты NirCmd:
Я проверил команду nircmd.exe — сработала идеально в последней Windows 10.
Имена файлов с датами
Так или иначе, искушенный пользователь когда-нибудь сталкивается с необходимостью включить в имя файла дату, чтобы сразу открыть, например файл с данными, относящимися к определенному дню. Кстати, это может быть не файл, а папка, но сути это не изменит.
В чем подвох? Для обсуждения сразу оговоримся, что в объяснении (как и в личном опыте) я не буду использовать разделителя. Мне это просто не нужно, а удлинение имени даже на два символа достаточно затрудняет работу.
Текстовые форматы
Время файла и летнее время
Необходимо соблюдать осторожность при использовании файлового времени, если пользователь установил автоматическую регулировку перехода на летнее время.
Чтобы преобразовать время файла в местное время, используйте функцию филетиметолокалфилетиме . Однако филетиметолокалфилетиме использует текущие настройки часового пояса и летнего времени. Таким образом, если это летнее время, оно принимает на себя переход на летнее время, даже если время преобразования файла — стандартное время.
Файловая система FAT записывает время на диск по местному времени. Функции getFileTime извлекает кэшированные значения времени в формате UTC из файловой системы FAT. Когда он переходит на летнее время, время, полученное функции getFileTime , будет отключено в течение часа, так как кэш не обновляется. При перезагрузке компьютера в кэшированное время, которое функции getFileTime извлекает, верно. FindFirstFile извлекает местное время из файловой системы FAT и преобразует его в формат UTC с использованием текущих параметров часового пояса и летнего времени. Таким образом, если это летнее время, FindFirstFile принимает на себя летнее время, даже если время преобразования файла — стандартное время.
Файловая система NTFS записывает время на диск в формате UTC. Чтобы учитывать переход на летнее время при преобразовании файлового времени в местное время, используйте следующую последовательность функций вместо использования филетиметолокалфилетиме:
Кто автор или владелец файла
Многие офисные программы добавляют в свойства файла имя автора или владельца документа. Они его берут из своих настроек (если их кто-то заполнил при установке) или из имени пользователя, который прописан в системе.
Про этот параметр многие забывают, а зря. Есть случаи, когда зарубежные ведомства выкладывали на свои сайты, казалось бы, простую документацию или разъяснения, а другая разведка по данным о владельце выясняла автора документа и пыталась его завербовать.
Сразу видно, что над документом работали двое авторов, причём создал документ изначально Мобиком-Центр, а Mike Polyanin потом сохранил последнюю версию
Ограничения в некоторых особых случаях
MS-DOS (FAT16). Имя файла составляется по правилу 8+3 (ISO 9660): имя не может превышать восьми символов, а расширение — трех. Для имен файлов крайне нежелательно использовать кирилические буквы, так как множество вспомогательных программ для работы с файловой системой их просто не понимает. Впрочем это касается всех нелокализованных операционных систем. Точка может использоваться только для отделения имени от расширения, в связи с чем ее никак нельзя вставить в имя второй раз. Запрещено использование пробела.
Число вложений папок не может превышать восьми.
Windows (VFAT, FAT32, NTFS). Файл может иметь имя длиной до 255 символов. Теоретически сюда включается и длина пути, но максимальная его длина может достигать 32767 символов (32 кб или 2 15 ).
Число вложений папок не может превышать 128.
CD. Наиболее распространенными форматами, описывающими метод хранения файлов на CD, являются расширенный ISO 9660 (длина до 31 символа) и Microsoft Joliet Extension к ISO9660 (до 34 символов).
Unix (NFS, Network File System) Принципиальное значение имеет регистр символов. «xx.txt» и «xX.txt» — два совершенно разных имени, и в одной папке могут находиться оба этих файла. Это может несколько сбить с толку пользователей Windows.
Имя отдельного каталога не должно превышать 255 символов и начинаться с буквы либо с символа подчеркивания и состоять из букв, цифр, (_.,), но не содержать пробелов. Расширение совершенно не является необходимым.
Абсолютный путь к файлу (вместе с его именем) не должен превышать 1023 символа.
Достаточно сложно дать однозначную оценку использованию национальных алфавитов для названий файлов. В целом можно говорить о недопустимости их использования. Это связано с тем, что такие ситуации неизвестны большинству утилит восстановления файловой системы. Во избежание проблем рекомендуется использовать транслитерацию.
В операционных системах предыдущего поколения (например DOS), расширение не могло превышать трех символов. В настоящее время таких ограничений нет. Более того, для некоторых случаев предпочтительным является использование четырехсимвольных вариантов (jpeg, html). На самом же деле расширение может состоять из двух (.ps) или даже одного символа (.h). Некоторые операционные системы (Unix, MacOS) могут вообще обходиться без расширения за счет того, что при открытии файла считывается его заголовок.
Программа, в которой создавался или редактировался файл
Часть программ записывают в файл информацию о себе, когда идёт работа над документом. Это нужно, чтобы понимать, обрабатывали ли фотографию в Фотошопе (например). Выглядит примерно так:
Поиск и сортировка файлов по времени модификации, доступа и изменения
Теперь мы переходим к потрясающей команде find. С её помощью мы будем выводить нужные файлы по дате изменения, а также искать файлы, которые были изменены или к которым был получен определённое время назад.
Кстати, настоятельно рекомендуется к изучению следующий материал по команде find:
С помощью команды find можно настроить очень гибкий поиск и вывод результатов.
Предположим, я хочу просмотреть файлы в папке /etc отсортированные по дате модификации:
Аналогично, но файлы отсортированы по дате доступа:
И снова аналогичный пример, но файлы отсортированы по времени изменению статуса:
В команде find вы можете настроить формат даты под свои нужды, а также указать любые фильтры, которые она поддерживает. Например, ниже команда для показа файлов, отсортированных по дате модификации, но только тех из них, у которых в имени встречается ssh:
Или только файлов с расширением .desktop:
Или любых файлов, отсортированных по дате доступа, но только первых 20:
Какое время показывает команда ls -l
Если запустить команду ls с опцией -l, то она покажет последнее время модификации содержимого файла (или директории). Используя опцию --time можно вызвать показ других меток времени:
Как можно увидеть, с помощью ls невозможно вывести время создания файла, поскольку эта возможность была добавлена в ядро недавно.
Если добавить опцию --sort=time, то будет также выполнена сортировка по выбранной метки времени.
Имеется несколько сокращённых опций:
Можно выбрать формат времени:
Значением TIME_STYLE могут быть: full-iso, long-iso, iso, locale или +ФОРМАТ.
Значение ФОРМАТа как в date(1). Если значение ФОРМАТа равно ФОРМАТ1ФОРМАТ2, то ФОРМАТ1 применяется не к последним файлам, а ФОРМАТ2 к новым. Если TIME_STYLE начинается с «posix-», то он применяется только для локалей отличных от POSIX. Также, используемый стиль по умолчанию задаёт переменная окружения TIME_STYLE.
Есть сокращение популярного варианта:
Этичный хакинг и тестирование на проникновение, информационная безопасность
Всё началось с того, что я заинтересовался, как найти в системе файлы созданные или изменённые за определённый промежуток времени. Например, как узнать, какие файлы в папке /etc были изменены за последний день или за последнюю неделю?
С этой задачей прекрасно справляется команда find, правда выяснилось, что у каждого файла доступны следующие метки времени:
- Доступ
- Модифицирован
- Изменён
- Создан
Чтобы понимать, что именно мы нашли, нужно чётко знать разницу между этими свойствами файла.
Именно этому и посвящена данная статья, в ней будет рассказано:
- как посмотреть время изменения файла и чем время изменения отличается от времени модификации файла
- как узнать, когда файл последний раз открывали
- как узнать время создания файла в Linux
- как поменять время доступа, модификации и изменения файла.
- как поменять время создания файла в Linux и возможно ли это вообще
- как найти файлы, которые недавно были изменены или открыты
- как найти файлы, которые открывали, редактировали или создавали в определённый день или определённое время назад
Все эти вопросы имеют практический смысл: от простого домашнего использования — поиск файла, для которого мы не помним имя, но для которого помним время создания; до серьёзного профессионального — появление новых файлов на сервере, либо недавние модификации важных файлов, могут свидетельствовать о взломе системы или неавторизованном доступе, могут помочь при расследовании подобных случаев для понимания событий произошедшего. Либо быть применены с противоположными мотивами — что и как нужно поменять в метках времени, чтобы снизить возможности криминалистического исследования.
Языки программирования
Расширение | Пояснения |
.c | Программа на языке C |
.vb | Программа на языке Visual Basic |
.vbs | Программа на языке Visual Basic Script |
.js | Программа на языке Java Script |
.h | Файл вставок (заголовков, header) на языке Cи |
Дата создания
Когда вы создаёте и сохраняете новый файл, у него появляется время создания. Оно берётся из настроек компьютера, где создан файл, поэтому теоретически дата создания может быть любой.
Часто по дате создания можно понять, в какой момент работа была начата. Например, если коллега говорит, что работал над отчётом всю неделю, а в дате создания стоит сегодняшнее утро, то… Ну, вы понимаете.
Мы переставили дату на компьютере и сохранили файл. Выглядит как раритет
Как отредактировать метки времени файла
С помощью команды touch можно изменить три метки времени файла или папки:
- время доступа
- время модификации
- время изменения статуса
Если вы хотите изменить все эти значения на текущее время, то достаточно запустить команду вида:
Можно отдельно поменять только время доступа или только время модификации, соответствующие опции:
С помощью опции -t можно установить любое время, на которое мы хотим поменять метки файла. Формат указания времени следующий:
В этой строке то, что в фигурных скобках, является необязательным. Значения букв следующее:
- CC – Первые две цифры года (от слова century — века)
- YY – Вторые две цифры года
- MM – Месяц года (01-12)
- DD – День месяца (01-31)
- hh – Часы дня (00-23)
- mm – Минуты часа (00-59)
- ss – Секунды (00-59)
Если не указать века или год вообще, то будет использоваться текущий год. Если не указать секунды, то значением по умолчанию является 00.
С помощью опции -t невозможно указать доли секунды и в выводе команды stat на их месте всегда будет 000000000
С помощью опции -d можно использовать разные более человечные способы указать время, например, «две недели назад». Это должно работать на английском, не знаю как с национальными языками. Опция -d (судя по описанию) понимает много разных вариантов синтаксиса, но для меня самым интересным свойством является возможность установить доли секунды, чтобы метки времени выглядели естественно, поскольку временные метки с девятью нулями на конце наводят мысль о том, что они спуфлены. Пример установки времени с указанием долей секунды:
То есть формат строки такой (из неё можно пропустить дефисы и двоеточия — опция -d всё равно её поймёт, но я их добавил для наглядности):
Сколько времени работали над файлом
Многие офисные программы умеют считать время, потраченное на работу с документом. Это для тех, кто жалуется, что убил на документ все выходные, а на самом деле…
Кто-то сидел над тысячей символов почти час
Электронные таблицы
Расширение | Пояснения |
.xls, .xlsx | Таблица Excel |
.xlk | Резервная копия таблицы Excel |
.xlt | Шаблон Excel |
.wk1, .wk3, .wk4, .wks | Разные версии Lotus 1-2-3 |
.wq1 | Quattro Pro |
Базы данных (БД)
Расширение | Пояснения |
.cdx | Комплексный индекс |
.idx | Индивидуальный индекс |
.db | БД Paragox |
.dbc | БД FoxPro |
.dbt | Файл примечаний |
.dbf | Таблицы БД dBase, FoxBase, FoxPro |
.mdb | БД Access |
.tbk | Резервная копия файла примечаний |
Как в Linux изменить время создания файла
Хотя файловая система ext4 поддерживает такое свойство файлов как «время создания», в ядро Linux возможность чтения этого свойства была добавлена недавно. Что касается возможности изменения времени создания файла, то такой функции нет (и не факт, что файловые системы это вообще поддерживают).
Но, как обычно, можно что-то придумать.
Время назад
При копировании файла в другой файл, его временем создания становится текущее время. Если перевести системное время на то, которое вы хотите установить для файла в качестве времени создания, а затем скопировать содержимое файла в новый, то таким образом можно установить любое время создания для нового файла.
Изменение времени создания в других ОС или файловых системах
В Интернете попадаются инструкции об изменении времени создания файла в операционных системах, которые это поддерживают. Также предлагается использовать некоторые другие файловые системы — например, сетевые, в которых также можно поменять это свойство.
Действительно, в Windows можно изменить не только время модификации файла, но и время создания. Но проблема в том, что при переносе в Linux сохраняется только время модификации. В качестве времени создания записывается текущее (то есть время создания иноды в файловой системе). И если это понимать — что временем создания файла является время модификации иноды, то становится понятно, невозможно никак перенести файл (ни в архиве, ни как-то ещё) с сохранением временем создания.
Также становится понятно, что из Windows невозможно изменить время создания файла, который находится в совместной папке в файловой системе ext4 (хотя я на всякий случай попробовал).
То есть вариантов поменять дату создания файла в Linux всего два: 1) поменять время системы; 2) низкоуровневое редактирование файловой системы (например, шестнадцатеричным редактором или специальными инструментами (если они существуют)) — с соответствующими рисками нарушить целостность файловой системы.
То есть плохая новость в том, что изменить время создания файла очень трудно или практически невозможно. Но хорошая новость в том, что время создания файла на практике почти не используется из-за того, что это поддерживают не все файловые системы, и в самой Linux эта поддержка появилась недавно. Например, команда find ничего не знает о времени создания файла (хотя может искать по другим трём меткам времени: модификация, доступ, изменение статуса), команда ls также не умеет отображать время создания файла (только обычные три метки времени).
Обычно используется время модификации файла, которое очень легко можно поменять с помощью touch.
Связанные статьи:
факультете информационной безопасности от GeekBrains? Комплексная годовая программа практического обучения с охватом всех основных тем, а также с дополнительными курсами в подарок. По итогам обучения выдаётся свидетельство установленного образца и сертификат. По этой ссылке специальная скидка на любые факультеты и курсы!
Недавно мы разобрались, что такое файл, где он хранится и что может находиться внутри него. Но у файла есть ещё несколько неочевидных свойств, которые могут пригодиться в разных ситуациях — или, наоборот, рассказать всем то, чем вы не хотели бы делиться.
💡 Все доступные свойства файла на компьютере можно посмотреть, щёлкнув правой кнопкой мыши по файлу и выбрав пункт «Свойства». Он есть и в Windows, и в Mac OS. Единственный нюанс — конкретные свойства зависят от типа файла (документ, картинка или музыка).
Графические форматы
Расширение | Пояснения |
Растровые | |
.ani | Animated Cursor |
.bmp | BitMaP. Формат, фактически пригодный только для просмотра на экране с локального ресурса |
.cur | Cursor |
.dib | Device Independent Bitmap |
.jpg , .gfa | Graphics Interchange Format |
.ico | Icon (пиктограмма) |
.img | &Digital Research GEM Bitmap |
.jpg , .jpg , .jpe, .jfif | Joint Picture Motion Group (JPEG File Interchange Format) |
.jpg | Portable Networks Graphics |
.pcd | Photo CD |
.pcx | Z-Soft PaintBrush |
.tga | TrueVision Targa |
.tif , .tiff | Toggle Immage File Format |
Векторные | |
.cgm | Computer Graphics Metafile |
.emf | Windows Enhanced Metafile |
.emz .wmz | Сжатые расширенный (Enhanced) и обычный Windows Metafile |
.dxf | Drawing Interchange Format |
.eps | Encapsulate PostScript (данный формат имеет растровую версию!) |
.gem | |
.ps | Файл на языке PostScript, служащем для управления специальными устройствами вывода. Является ключевым для полиграфического воспроизводства документов. Фактически может совмещать текст и графику любого вида |
.vsd | Microsoft Visio |
.wmf | Формат Windows MetaFile, используемый ОС Windows для переноса векторных изображений через буфер памяти |
.wpg | Word Perfect Graphic |
.hpg , .hpgl | Векторная графика на языке HPGL для графопостроителя (Hewlett-Packard Graphic Language) |
Программные | |
.ai | Adobe Illustrator |
.ccx | Corel Binary Meta File |
.cdr | Corel Draw |
.psd , .pdd | Adobe Photoshop |
Заключение
Путешествие в мир меток времени файлов в Linux оказалось намного длиннее чем я сам ожидал. Зато мы узнали о четырёх разных метках времени, о том, как их посмотреть и изменить, а также как искать файлы по любой из трёх меток времени.
Я об этом уже говорил, но напомню ещё раз — редактируя метки времени файла, не нужно забывать о соответствующих метках времени в метаданных самого файла (а не файловой системы). Про просмотр и удаление метаданных вы найдёте больше информации по ссылкам:
- Как просмотреть или отредактировать метаданные pdf или изображениях из командной строки Linux
- Как удалить метаданные файла на Linux
- Insiderer (мощная программа по извлечению всей возможной метаинформации)
- mat (набор инструментов анализа/удаления метаданных)
- Геолокация фотографий по GPS меткам в метаданных (онлайн сервис)
- mat2: новая версия программы для удаления метаданных
- Массовый поиск геотэгов на сайтах и в локальном хранилище
Звуковые файлы
Маски в именах файлов
Для некоторых видов работ с файлами (групповых операций или поиска) используется маска, содержащая символы подстановки «*» и «?».
Символ «?» в маске означает, что вместо него должен стоять любой символ.
Символ «*» в маске означает, что вместо него может быть подставлено любое сочетание символов. То есть их может не быть совсем, либо быть несколько (1, 2, 3 и т.д.).
Для ясности разберем несколько примеров.
Во многих случаях маской по умолчанию является вариант «*.*». В этом случае и имя файла и его расширение может принимать любые значения, а действие команды с такой маской распространяется на все файлы без исключения.
Маска «*.?*» очень похожа на предыдущую, но означает, что расширение должно содержать хотя бы одну букву. Иначе говоря, файлы (и/или папки), не имеющие расширения, будут проигнорированы.
Маска «*.doc» относится к файлам с расширением «doc», то есть документам Word версии 2003 и ранее.
Маска «*.doc?» найдет документы Word 2007.
Маска «*.doc*» найдет документы любой версии Word: с трех- и четырехбуквенным расширением, начинающимся с «doc».
Маска «*. » обнаружит только файлы, имеющие расширение ровно в две буквы.
Маска «. *» выделит все файлы с трехбуквенными именами.
Маска «mark*.doc*» найдет файлы любой версии Word, начинающиеся с «mark».
Временные метки файла в файловой системе и в метаданных
Прежде чем начать говорить о временных метках файла, нужно понять, что это является частью функциональности файловой системы. Следовательно, на различных файловых системах некоторые временные метки могут быть недоступны.
Кроме как в свойствах файла в файловой системе, временные метки могут храниться в метаданных самого файла. Очень многие форматы имеют метаданные и довольно часто эти метаданные содержат свой собственный набор временных меток, которые отличаются по составу и даже по текущему их значению от меток времени в файловой системе. Например, для документов Word в метаданных кроме даты создания могут также содержаться метки времени о дате печати файла, об общем времени редактировании файла и так далее.
Для изображений в EXIF метаданных также могут содержаться независимая от файловой системы информация о времени создания файла.
Нельзя ни в коем случае забывать о метаданных если ваша цель отредактировать метки времени! Для доступа/редактирования к метаданным используются различные приложения и эти вопросы не входят в тему данной статьи. Данная статья посвящена меткам времени файлов и папо, которые хранит файловая система.
Что такое время доступа, время модификации и время изменения директории в Linux
Посмотреть метки времени папки можно также с помощью команды stat:
Например, чтобы посмотреть информацию о текущей папке:
Для папок время последнего доступа обновляется при просмотре списка файлов внутри неё. Действуют такие же правила, как и для файлов — зависит от опций, с которыми смонтирована файловая система.
При создании или удалении нового файла внутри директории, при модификации содержимого или изменении свойств файла внутри папки, одновременно обновляется и время изменения, и время модификации данной папки.
Архивы
Всего существует свыше 100 расширений имен файлов архивов. Здесь приведены наиболее важные.
Расширение | Пояснения |
.arj | Архив, подготовленный программой WinArj или Arj для DOS |
.cab | Упакованные файлы дистрибутивного комплекта |
.ice | Архив ICE |
.jar | Архив Jar |
.lzh, .lha | Архив бесплатной программы LHA |
.pac | Чаще всего — дистрибутив |
.7z | Архив, подготовленный программой 7zip (7-Zip). Один из лучших современных архиваторов с отвратительным интерфейсом. Зато бесплатный. |
.rar | Архив, подготовленный программой Rar или WinRar. Практически, во многих случаях достигается наибольший коэффициент сжатия, по сравнению с другими форматами. Программы бесплатны для жителей территорий бывшего СССР. |
.zip | Архив, подготовленный программой WinZip или Zip для DOS. В последнем случае для запаковки используется программа pkzip, а для распаковки — pkUNzip. Формат для DOS является абсолютным стандартом архивов в Интернете, благодаря тому, что может быть открыт практически любой программой. |
.zoo | Архив ZOO |
Дата изменения
Дата изменения показывает, когда последний раз в файл вносили какие-то изменения — что-то добавляли или удаляли оттуда. По этому параметру можно понять, доделывал ли кто-то файл после создания.
Видно, что с этим документом никто не работал после создания А над этим — работали
Форматы и расширения
Читайте также: