Предполагается, что при перечислении файлов в каталоге будет отображаться «~»

Предполагается, что при перечислении файлов в каталоге будет отображаться «~»

Я работаю над школьным заданием, и у меня возникли проблемы с выполнением этой части.

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

Я что-то пропустил?

решение1

Да, вы что-то упускаете: вы не ожидаете увидеть этот файл, когда высначала открой его. Вы только это увидитепосле того как вы сохранилифайл, который вы открыли.

Как gedit сохраняет файлы

Текущий файл переименовывается. Затем измененное содержимое записывается в новый файл, которому присваивается имя файла, который вы открыли.

Если в разделе «Настройки», на вкладке «Редактор» включена опция «Создавать резервную копию файла перед сохранением», файл резервной копии переименовывается путем добавления ~к имени файла символа a. В противном случае он переименовывается в случайную строку, начинающуюся с точки .. Этот файл со случайным именем удаляется, если сохранение прошло успешно.

Контраст с поведением других типичных редакторов на базе терминала

Такое поведение графического редактора Gedit (и других графических редакторов) влияет на работу жестких ссылок. Как объяснялось выше, эти редакторы фактически сохраняют измененный контент в новом файле, т. е. в новом inode. Жесткие ссылки Linux указывают на inode. Жесткая ссылка на тот же файл в другом месте файловой системы будет продолжать указывать на старые данные и больше не будет связана с измененным файлом. Обычно это не то, чего ожидают пользователи. Однако такой подход безопаснее: если сохранение не удается, исходный контент все равно сохраняется на диске.

Традиционные (в частности, основанные на терминале) редакторы Linux сохранят обновленное содержимое в тот же иноде. Они записывают обновленное содержимое в тот же иноде, заменяя старое содержимое.

Связанный контент