Как изменить статус файла

Обновлено: 07.07.2024

Этичный хакинг и тестирование на проникновение, информационная безопасность

Всё началось с того, что я заинтересовался, как найти в системе файлы созданные или изменённые за определённый промежуток времени. Например, как узнать, какие файлы в папке /etc были изменены за последний день или за последнюю неделю?

С этой задачей прекрасно справляется команда find, правда выяснилось, что у каждого файла доступны следующие метки времени:

  • Доступ
  • Модифицирован
  • Изменён
  • Создан

Чтобы понимать, что именно мы нашли, нужно чётко знать разницу между этими свойствами файла.

Именно этому и посвящена данная статья, в ней будет рассказано:

  • как посмотреть время изменения файла и чем время изменения отличается от времени модификации файла
  • как узнать, когда файл последний раз открывали
  • как узнать время создания файла в Linux
  • как поменять время доступа, модификации и изменения файла.
  • как поменять время создания файла в Linux и возможно ли это вообще
  • как найти файлы, которые недавно были изменены или открыты
  • как найти файлы, которые открывали, редактировали или создавали в определённый день или определённое время назад

Все эти вопросы имеют практический смысл: от простого домашнего использования — поиск файла, для которого мы не помним имя, но для которого помним время создания; до серьёзного профессионального — появление новых файлов на сервере, либо недавние модификации важных файлов, могут свидетельствовать о взломе системы или неавторизованном доступе, могут помочь при расследовании подобных случаев для понимания событий произошедшего. Либо быть применены с противоположными мотивами — что и как нужно поменять в метках времени, чтобы снизить возможности криминалистического исследования.

Временные метки файла в файловой системе и в метаданных

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

Кроме как в свойствах файла в файловой системе, временные метки могут храниться в метаданных самого файла. Очень многие форматы имеют метаданные и довольно часто эти метаданные содержат свой собственный набор временных меток, которые отличаются по составу и даже по текущему их значению от меток времени в файловой системе. Например, для документов Word в метаданных кроме даты создания могут также содержаться метки времени о дате печати файла, об общем времени редактировании файла и так далее.

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

Нельзя ни в коем случае забывать о метаданных если ваша цель отредактировать метки времени! Для доступа/редактирования к метаданным используются различные приложения и эти вопросы не входят в тему данной статьи. Данная статья посвящена меткам времени файлов и папо, которые хранит файловая система.

Как посмотреть время создания, редактирования и открытия файла в Linux

Сразу все временные метки файла можно посмотреть с помощью команды stat. Запуск очень простой:

Например, я хочу узнать информацию о файле prog.txt:


С временем создания всё понятно — это когда файл был создан. Между прочим, эту информацию программа stat стала показывать довольно недавно. До этого на вопрос «как узнать время создания файла?» знатоки отвечали, что ядро Linux это не поддерживает. В качестве рабочего решения нужно было посмотреть иноду интересующего файла, а затем другой командой посмотреть дату создания этой иноды — это и считалось временем создания файла.

Выше показан вывод для команды на файловой системе ext4. Для файловой системы ext2 дата создания файла по-прежнему недоступна:


Теперь давайте разберёмся, что означают другие метки времени в Linux.

Что такое время доступа к файлу, время модификации файла и время изменения файла в 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

Что такое время доступа, время модификации и время изменения директории в Linux

Посмотреть метки времени папки можно также с помощью команды stat:

Например, чтобы посмотреть информацию о текущей папке:

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

При создании или удалении нового файла внутри директории, при модификации содержимого или изменении свойств файла внутри папки, одновременно обновляется и время изменения, и время модификации данной папки.

Какое время показывает команда 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.

Есть сокращение популярного варианта:

Поиск и сортировка файлов по времени модификации, доступа и изменения

Теперь мы переходим к потрясающей команде find. С её помощью мы будем выводить нужные файлы по дате изменения, а также искать файлы, которые были изменены или к которым был получен определённое время назад.

Кстати, настоятельно рекомендуется к изучению следующий материал по команде find:

С помощью команды find можно настроить очень гибкий поиск и вывод результатов.

Предположим, я хочу просмотреть файлы в папке /etc отсортированные по дате модификации:

Аналогично, но файлы отсортированы по дате доступа:

И снова аналогичный пример, но файлы отсортированы по времени изменению статуса:

В команде find вы можете настроить формат даты под свои нужды, а также указать любые фильтры, которые она поддерживает. Например, ниже команда для показа файлов, отсортированных по дате модификации, но только тех из них, у которых в имени встречается ssh:

Или только файлов с расширением .desktop:

Или любых файлов, отсортированных по дате доступа, но только первых 20:

Поиск файлов по времени изменения

Для этого мы опять будем использовать команду 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 дней:

Чтобы найти все исполнимые файлы в текущей папке, которые были изменены или созданы за последние 10 дней:

Как отредактировать метки времени файла

С помощью команды 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 всё равно её поймёт, но я их добавил для наглядности):

Как в Linux изменить время создания файла

Хотя файловая система ext4 поддерживает такое свойство файлов как «время создания», в ядро Linux возможность чтения этого свойства была добавлена недавно. Что касается возможности изменения времени создания файла, то такой функции нет (и не факт, что файловые системы это вообще поддерживают).

Но, как обычно, можно что-то придумать.

Время назад

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

Изменение времени создания в других ОС или файловых системах

В Интернете попадаются инструкции об изменении времени создания файла в операционных системах, которые это поддерживают. Также предлагается использовать некоторые другие файловые системы — например, сетевые, в которых также можно поменять это свойство.

Действительно, в Windows можно изменить не только время модификации файла, но и время создания. Но проблема в том, что при переносе в Linux сохраняется только время модификации. В качестве времени создания записывается текущее (то есть время создания иноды в файловой системе). И если это понимать — что временем создания файла является время модификации иноды, то становится понятно, невозможно никак перенести файл (ни в архиве, ни как-то ещё) с сохранением временем создания.

Также становится понятно, что из Windows невозможно изменить время создания файла, который находится в совместной папке в файловой системе ext4 (хотя я на всякий случай попробовал).

То есть вариантов поменять дату создания файла в Linux всего два: 1) поменять время системы; 2) низкоуровневое редактирование файловой системы (например, шестнадцатеричным редактором или специальными инструментами (если они существуют)) — с соответствующими рисками нарушить целостность файловой системы.

То есть плохая новость в том, что изменить время создания файла очень трудно или практически невозможно. Но хорошая новость в том, что время создания файла на практике почти не используется из-за того, что это поддерживают не все файловые системы, и в самой Linux эта поддержка появилась недавно. Например, команда find ничего не знает о времени создания файла (хотя может искать по другим трём меткам времени: модификация, доступ, изменение статуса), команда ls также не умеет отображать время создания файла (только обычные три метки времени).

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

Как изменить время создания и модификации файла в Windows

Кстати, если вам интересно, как поменять время создания файла в Windows, то это можно сделать с помощью утилиты NirCmd:

Я проверил команду nircmd.exe — сработала идеально в последней Windows 10.


Заключение

Путешествие в мир меток времени файлов в Linux оказалось намного длиннее чем я сам ожидал. Зато мы узнали о четырёх разных метках времени, о том, как их посмотреть и изменить, а также как искать файлы по любой из трёх меток времени.

Я об этом уже говорил, но напомню ещё раз — редактируя метки времени файла, не нужно забывать о соответствующих метках времени в метаданных самого файла (а не файловой системы). Про просмотр и удаление метаданных вы найдёте больше информации по ссылкам:

К каждому файлу, который вы создаете или изменяете в Windows 10, прикреплены атрибуты файла, которые сообщают вам (или кому-то еще), когда файл был создан, изменен, открыт и, возможно, многое другое. Неважно, опаздываете ли вы с отправкой задания или просто пытаетесь замести следы - информация всегда будет там, если вы ее не измените.

Если вы хотите изменить такие атрибуты файла, у вас есть несколько вариантов. Вы можете использовать новую оболочку Windows PowerShell, чтобы изменить или удалить эти данные, или вы можете сделать это с помощью проводника Windows или другого стороннего приложения, такого как Attribute Changer. Вот как изменить атрибуты файла в Windows 10 с помощью этих методов.

Удаление атрибутов файла с помощью проводника Windows

Если вы хотите изменить дату последнего изменения или другие атрибуты файла в Windows 10, возможно, вы в первую очередь захотите сделать это с помощью меню « Свойства» для файла в проводнике Windows.

К сожалению, это невозможно. Вы можете просматривать и изменять определенные атрибуты файлов в проводнике, но вы не можете изменить даты последнего просмотра, редактирования или изменения. Однако он удалит другие личные данные, такие как имя автора для документов, рейтинги для файлов мультимедиа, а также установит для файла режим только для чтения или скрытие.

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

  • Чтобы удалить определенные личные атрибуты файла, откройте проводник Windows и найдите файл. Щелкните файл правой кнопкой мыши и нажмите " Свойства" .
  • В поле « Свойства» перейдите на вкладку « Сведения », затем щелкните ссылку « Удалить свойства и личную информацию» .
  • Как мы уже упоминали, вы не можете удалить или изменить дату создания файла или другие важные атрибуты файла здесь. Если к вашему файлу прикреплена другая личная информация, вы можете создать копию файла с удаленной информацией, нажав кнопку « Создать копию со всеми возможными удаленными свойствами» , а затем нажмите « ОК», чтобы сохранить и выполнить действие. Копия вашего файла появится в той же папке, что и исходный файл, с удаленными выбранными вами атрибутами.
  • Чтобы удалить эту информацию из существующего файла, выберите вместо этого параметр Удалить следующие свойства из этого файла, а затем выберите свойства, которые вы хотите удалить. Нажмите ОК, чтобы сохранить и удалить эту информацию из файла.
  • Вы также можете использовать проводник, чтобы изменить или установить другие атрибуты файла, например, являются ли ваши файлы скрытыми или доступными только для чтения. В поле « Свойства» перейдите на вкладку « Общие », затем установите флажки « Скрытый» или « Только для чтения», чтобы включить или отключить эти параметры, затем нажмите « ОК» для сохранения.

Чтобы изменить дату последнего изменения и другие атрибуты, вам необходимо использовать другой метод, указанный ниже.

Изменение атрибутов файла с помощью PowerShell

Команда attrib из Windows PowerShell позволяет просматривать и изменять атрибуты файлов для файлов Windows 10. Он входит в стандартную комплектацию, поэтому для его использования не требуется никакого дополнительного программного обеспечения.

Это довольно сложный метод, но также весьма ограниченный. Если вам нужен более простой способ изменения атрибутов файла, используйте приложение Attribute Changer, указанное ниже.

  • Для начала откройте окно PowerShell - желательно с правами администратора. Для этого щелкните правой кнопкой мыши меню «Пуск» Windows и нажмите PowerShell (Admin), чтобы запустить новое окно PowerShell с включенными правами администратора.
  • Используйте команды cd и ls для перемещения папок и просмотра содержимого файлов. Оказавшись в нужной папке, вы можете перечислить все соответствующие атрибуты для вашего файла, набрав Get-ItemProperty -Path file | Format-list -Property * -Force , заменяя файл на путь к файлу.
  • Вы можете использовать команду Set-ItemProperty для изменения атрибутов файла, таких как доступ только для чтения. Для этого введите Set-ItemProperty -Path file -Name IsReadOnly -Value True , заменив файл своим именем файла. Полный список возможных переменных для этой команды см. В полной документации Microsoft PowerShell .

Успешное изменение приведет к тому, что PowerShell не вернет ответа, но вы можете проверить, было ли оно успешным, набрав Get-ItemProperty -Path file | Format-list -Property * -Force еще раз или просмотрев свойства файла с помощью проводника.

Как мы уже упоминали, это не самый простой способ изменить атрибуты файла. Существуют сторонние приложения, такие как Attribute Changer, чтобы сделать это намного проще, а также позволяют вам изменить дату последнего изменения и многое другое.

Использование Attribute Changer для изменения атрибутов файлов Windows 10

Attribute Changer предлагает лучший способ изменить атрибуты файла в Windows. Наряду с типичными скрытыми атрибутами и атрибутами, доступными только для чтения, Attribute Changer позволяет изменять даты доступа и создания файлов, а также другие параметры.

Команда chmod позволяет вам устанавливать разрешение на чтение, запись и использование вашего файла. Так как операционная система UNIX является многопользовательской, то обычно вы не работаете в одиночку в файловой системе. Пользователи системы могут любым путем обращаться к различным справочникам и читать файлы, принадлежащие другим пользователям до тех пор, пока есть разрешение на это.

Когда вы создаете файл или справочник, система автоматически предоставляет или не предоставляет право доступа вам, члену вашей группы или всем пользователям системы. Вы можете изменить это автоматическое действие по предоставлению права (см. разд. 9). Кроме того, вне зависимости от того, какие права вам предоставляются при создании файла, вы как владелец файла или справочника можете воспользоваться ключом внесения изменений.

3.10.6.1. Как определить права

Вы можете определить права доступа к файлу или справочнику, воспользовавшись командой ls -l. Например, если вы находитесь в справочнике startship/bin, и введете команду ls -l, то получите следующую информацию:

В левой части экрана отображены права доступа для файлов display и list и справочника tools:

Первый символ описывает тип файла (например, символ "-" говорит, что это обыкновенный файл, символ "d" - справочник). Дальнейшие девять символов описывают права доступа. Первые три символа из девяти устанавливают права доступа для владельца, вторые три - для группы, третьи - для всех пользователей. Каждый набор символов r,w,x показывает текущие установленные права доступа для каждой категории пользователей. Если вместо символа стоит "-", то соответствующее право отсутствует.

Существует два ограничения. Случайно могут появиться буквы l или s в строке вместо r, w или x. Буква s представляет специальное право на выполнение файла. Она появляется на том месте, где обычно стоит буква r в наборах для владельца или для группы пользователей и это означает специальное право на выполнение файла. Она имеет значение только для программистов и системных программистов. Буква l указывает, что блокировка будет появляться при обращении к файлу. Это не означает, что файл защищен.

3.10.6.2. Как изменить существующие права

Изменить существующие права можно с помощью команды chmod.

Примечание. Команда chmod не будет выполняться, если вы поставите пробел между "кто", символами "+", "-" и "право".

В следующих примерах приведены несколько способов использования команды chmod. Как владелец display вы можете читать файл, писать в него и запускать на выполнение файл. Вы можете защитить файл от случайного изменения. Чтобы сделать это, введите следующую командную строку: После того как получите подсказку, введите команду: чтобы проверить, как изменились права. Экран будет выглядеть следующим образом:

Как видите, изменилось право на внесение изменений в файл. Вы не сможете изменить этот файл, пока существует это право записи.

Теперь обратимся к другому примеру. Право на запись в файл display не разрешено вашей группе и всем пользователям системы. Однако им предоставлено право на чтение. Это означает, что они могут копировать файл в свой собственный справочник и затем вносить в него изменения. Чтобы предотвратить эти действия, вы должны отменить право на чтение. Для этого введите команду: где g и o обозначают права для группы и для всех пользователей системы;
-r - запрещает читать или копировать файл.

Проверьте результат и введите команду ls -l. Экран будет выглядеть следующим образом:

Вы можете использовать команду chmod для предоставления или отрицания права для справочников как и для файлов.

Например, вы предоставили право на чтение справочника себе (u), членам вашей группы (g) и всем пользователям системы. Каждый пользователь, имеющий доступ к системе, будет иметь право читать имена файлов, содержащихся в этом справочнике, задав команду ls -l. Аналогично, предоставление права на запись позволяет пользователям создавать новые файлы в справочнике и удалять в нем существующие файлы. Предоставленное право на выполнение в справочнике позволяет обозначенным пользователям перемещаться в этот справочник (и делать его своим текущим справочником) с помощью команды cd.

3.10.6.3. Альтернативный метод

Существует два метода, с помощью которых может быть выполнена команда chmod. Способ, описанный выше, в котором символы r, w и x используются для указания права, называется символическим методом.

Альтернативным методом является восьмиричный метод. Его формат требует от вас указать права с использованием трех восьмиричных цифр (от 0 до 7).

Тип, а точнее, формат файла, — это своеобразный идентификатор, который имеют любые данные на компьютере. Он нужен для того, чтобы система понимала, в каком приложении их следует открывать. Формат файла указывается в виде расширения — двух‑трёх символов после точки в конце имени. Например: фото.jpg, документ.txt, песня.mp3.

По сути, изменение типа файла — это его преобразование в другой формат с помощью конвертера. А то, что большинство пользователей подразумевает под этой процедурой, на самом деле является сменой расширения.

Так можно поступить в случае, когда необходимо открыть один из вариантов формата файлов в приложении, которое не хочет с ним работать. Например, изменить расширение аудиофайла с M4A на MP3 и подсунуть его проигрывателю. Это сработает для таких простых манипуляций, но не поможет в случаях преобразования видео в аудио или EPUB‑книги в FB2.

Если вас интересует именно конвертация — ознакомьтесь с другими статьями Лайфхакера на эту тему.

Если же необходимо изменить тип файла для того, чтобы он открылся в вашем приложении, читайте дальше.

Как изменить тип файла в Windows

Расширения файлов не видны в Windows по умолчанию. Поэтому для их правки сначала необходимо включить отображение в настройках «Проводника». В Windows 10 для этого следует открыть папку с нужным файлом, перейти в меню «Вид» и поставить галочку напротив пункта «Расширения имён файлов».

Теперь, когда расширение отображается в имени файла, для изменения достаточно переименовать его, вписав новое после точки, — через стандартное меню или кликнув на выделенное имя. Если что‑то пойдёт не так, аналогичным образом легко будет вернуть всё назад.

Как изменить тип файла в macOS

macOS тоже скрывает расширения файлов по умолчанию, так что придётся для начала изменить соответствующую опцию. Для этого нужно запустить Finder и открыть его настройки сочетанием Command + < или через меню Finder → «Настройки». И в разделе «Дополнения» отметить пункт «Показывать все расширения имён файлов».

Остаётся переименовать файл, нажав Enter или сделав два клика по названию. Вместо старого расширения нужно вписать новое, затем нажать Enter и подтвердить действие, кликнув «Использовать…».

Как изменить тип файла в Linux

В Linux‑дистрибутивах всё гораздо проще. Здесь расширение файлов отображается всегда. Поэтому, для того чтобы изменить его, нужно всего лишь выбрать в контекстном меню «Переименовать» по правому клику и задать новое имя с необходимым расширением.


У меня есть проект Java, и я хочу изменить его в intellij, но я не могу этого сделать из-за этого "файл только для чтения" или же "файл не доступен для записи" Итак, как я могу его изменить и выполнить?


  • В главном меню выберите File | File Properties | Make File Read-Only , или же Make File Writable .


  • Щелкните значок замка в строке состояния в правом нижнем углу.


  • Скриншот для этого ответа было бы здорово
  • Я добавил скриншот и обновил текст для текущей версии (2002.2.3)

Если IntelliJ IDEA не может изменить права доступа к файлу с помощью Файл | Сделать файл доступным для записи, то, возможно, этот файл принадлежит другому пользователю, например root (используйте эту команду для проверки: ls -hal /path/to/File.java )

Если он принадлежит кому-то другому по какой-либо причине, вы можете изменить разрешения самостоятельно, используя команду chown в терминале:

sudo chown yourusername /path/to/File.java ,

где yourusername - тот же пользователь, которого вы использовали для запуска Intellij IDEA.

  • Работал для меня chmod 0777 /path-to-file . благодаря

Если вы используете Mac. Выполните следующие шаги:

  1. Откройте этот файл в Finder
  2. Щелкните правой кнопкой мыши и выберите Get Info
  3. В этом окне информации о файле выберите Sharing and Permissions , изменение Privilege как вы и ожидали. Перед изменением вы должны не забыть разблокировать свое разрешение на изменение, щелкнув Locker Icon внизу справа.


Для Mac это определенно работает:

sudo chmod -R 777 /YourDirectory

У меня просто была эта проблема, и я наконец понял, где я ошибся.

Более часа предложений от Google не помогли. Оказывается, я работал с файлами, выбранными в папке -out> production> MyPath, а не в папке -src на боковой панели моего проекта. Выбор файла -scr> MyClass позволяет мне делать то, что я хочу.

В верхнем левом углу раскрывающегося списка, где у вас есть тесты, производство, проблемы, переключение / выбор из проекта или любого другого каталога, который вы выбрали для пакетов, вы сможете редактировать свои пакеты, файлы в папке проекта - нет. редактируемые, хотя они заканчиваются на .class расширение.

Эта ошибка появляется, когда другой пользователь создал эти файлы.
1. Щелкните правой кнопкой мыши файл или папку, которые нужно удалить.
2. Выберите вариант раскрытия в папке.
3. Удалите файл и введите пароль.
4. Файлы будут удалены.

Читайте также: