Удаление открытого файла linux

Создаем и удаляем файлы в Linux

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

Способ 1: Терминал

Работа с файлами в «Терминале» кардинально отличается от работы в файловом менеджере. Как минимум, в нем нет визуализации — все данные вы будете вводить и получать в окне, имеющем вид традиционной для Windows командной строки. Однако именно через этот элемент системы удастся отследить все ошибки, возникающие при выполнении той или иной операции.

Подготовительные мероприятия

Используя «Терминал» для создания или удаления файлов в системе, вам необходимо предварительно указать в нем директорию, в которой будут выполняться все последующие операции. В противном случае все созданные файлы будут находиться в корневом каталоге («/»).

Указать директорию в «Терминале» можно двумя способами: при помощи файлового менеджера и при помощи команды cd. Разберем каждый в отдельности.

Файловый менеджер

Итак, допустим, вы хотите создать или, наоборот, удалить файл из папки «Документы», что находиться по пути:

Чтобы открыть эту директорию в «Терминале», вам необходимо сначала открыть ее в файловом менеджере, а затем, нажав ПКМ, выбрать в контекстном меню пункт «Открыть в терминале».

По итогу откроется «Терминал», в котором будет указана выбранная директория.

Команда cd

Если вы не хотите пользоваться предыдущим способом или не имеете доступа к файловому менеджеру, вы можете указать директорию, не выходя из «Терминала». Для этого используют команду cd. Все что нужно сделать, это написать данную команду, указав затем путь к директории. Разберем это так же на примере папки «Документы». Впишите команду:

Вот пример выполняемой операции:

Как видно, необходимо изначально ввести путь к директории (1), а после нажатия клавиши Enter в «Терминале» должна отобразиться выбранная директория (2).

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

Создание файлов через «Терминал»

Для начала откройте сам «Терминал», нажав сочетание клавиш CTRL + ALT + T. Теперь можно начинать создание файлов. Для этого есть возможность воспользоваться шестью разными способами, которые будут продемонстрированы ниже.

Утилита touch

Предназначение команды touch в Linux — изменение временной метки (время изменения и время использования). Но если введенного имени файла утилита не найдет, она автоматически создаст новый.

Итак, для создания файла вам необходимо в командной строке прописать:

touch «Имя_Файла» (обязательно в кавычках).

Вот пример такой команды:

Функция перенаправления процесса

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

Читайте также:  Mac os add route vpn

> «Имя_Файла» (обязательно в кавычках)

Команды echo и функция перенаправления процесса

Этот способ практически ничем не отличается от предыдущего, только в этом случае необходимо перед знаком перенаправления вписать команду echo:

echo > «Имя_Файла» (обязательно в кавычках)

Утилита cp

Как и в случае с утилитой touch, главным предназначением команды cp не является создание новых файлов. Она необходима для копирования. Однако задав переменную «null», вы создадите новый документ:

cp /dev/null «Имя_Файла» (обязательно без кавычек)

Команда cat и функции перенаправления процесса

cat — это команда, служащая для связки и просмотра файлов и их содержимого, но стоит ее использовать вместе с перенаправлением процесса, как она сразу создаст новый файл:

cat /dev/null > «Имя_Файла» (обязательно в кавычках)

Текстовый редактор vim

Именно у утилиты vim главное предназначение — это работа с файлами. Однако у нее нет интерфейса — все действия выполняются через «Терминал».

К сожалению, vim предустановлена не на всех дистрибутивах, например, в Ubuntu 16.04.2 LTS ее нет. Но это не беда, ее запросто можно скачать из репозитория и установить на свой компьютер, не покидая «Терминал».

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

Для установки введите команду:

sudo apt install vim

После нажатия Enter потребуется ввести пароль. Вводите его и ждите окончания загрузки и установки. В процессе у вас могут потребовать подтверждение выполнения команды — введите букву «Д» и нажмите Enter.

О завершении установки программы можно судить по появившемуся логину и имени компьютера.

После установки текстового редактора vim можно приступить к созданию файлов в системе. Для этого нужно воспользоваться командой:

vim -c wq «Имя_Файла» (обязательно в кавычках)

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

Удаление файлов через «Терминал»

Удаление файлов в «Терминале» практически ничем не отличается от их создания. Главное — знать все необходимые команды.

Важно: удаляя файлы из системы через «Терминал», вы их стираете безвозвратно, то есть, в «Корзине» их отыскать потом не получится.

Команда rm

Именно команда rm служит в Linux для удаления файлов. Вам всего-навсего нужно указать директорию, ввести команду и вписать имя файла, который нужно удалить:

rm «Имя_Файла» (обязательно в кавычках)

Как можно заметить, после выполнения данной команды в файловом менеджере пропал файл «Новый документ».

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

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

Способ 2: Файловый менеджер

Файловый менеджер любой операционной системы (ОС) хорош тем, что он дает возможность наглядно отследить все проводимые манипуляции, в отличие от «Терминала» с его командной строкой. Однако есть и минусы. Один из них: нет возможности детально проследить за процессами, которые выполняются при той или иной операции.

В любом случае пользователям, которые недавно установили дистрибутив Linux себе на компьютер, он отлично подойдет, так как сходство с Windows, как говорится, налицо.

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

Создаем файл в файловом менеджере

Необходимо делать следующее, чтобы создать файл:

Читайте также:  Документ подтверждающий покупку windows

    Открыть файловый менеджер (в данном случае Nautilus), нажав по его иконке на панели задач или проведя поиск по системе.

  • Перейти в необходимую директорию.
  • Нажать правой кнопкой мыши (ПКМ) по пустому месту.
  • В контекстном меню навести курсор на пункт «Создать документ» и выбрать необходимый вам формат (в данном случае формат один — «Пустой документ»).

    После этого в директории появится пустой файл, которому остается лишь задать имя.

    Удаляем файл в файловом менеджере

    Процесс удаления в менеджерах Linux проходит еще проще и быстрее. Для того, чтобы удалить файл, по нему нужно сначала нажать ПКМ, а затем в контекстном меню выбрать пункт «Удалить».

    Также можно ускорить этот процесс, выбрав нужный файл и нажав клавишу DELETE на клавиатуре.

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

    Заключение

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

    Помимо этой статьи, на сайте еще 12315 инструкций.
    Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    Источник

    Удаление открытого файла в Linux

    Есть ряд каверзных вопросов по Linux, которые вводят в ступор большинство начинающих системных администраторов Linux. Их очень любят задавать на собеседованиях бывалые админы, а в интернете про ответы на них не написал только ленивый. В топе уже наверно полтора десятилетия держится вопрос про удаление открытого файла в Linux. Тем не менее кандидаты все также из раза в раз продолжают делать круглые глаза. Максимум, что от них можно услышать — это «Иноды. Я слышал про иноды, но больше про них ничего не знаю».

    Чтобы раз и навсегда внести ясность в этот вопрос и была написана эта статья.

    Удаление открытого файла в Linux

    Чтобы проверить как работает файловая система в Linux, проведем небольшой эксперимент.

    Подготовка

    Для проведения всех тестов нам необходима виртуальная машина с практически любым дистрибутивом Linux и дополнительный диск. Благо в век виртуализации это сделать проще простого. Для наглядности возьмем диск в пару гигабайт и заранее подготовим его (базовые операции с дисками рассмотрим в другой статье).

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

    Свободное место и свободные иноды

    Первое, что мы сделаем, это проверим диски всем знакомой командой df (лишние данные убраны из вывода):

    Читайте также:  Linux посмотреть все измененные файлы

    Утилита отображает занятое на файловой системе место в блоках 1К. Этой информации в большинстве случаев хватает лишь для констатации факта о % свободного места и не стоит на этом останавливать диагностику.

    Проблемы с записью новых файлов может вызвать также нехватка инодов (inodes), поэтому полезно будет их проверить той же командой, но с другим ключом:

    Используется 1% места на разделе. Запоминаем вывод команд, он нам понадобится для последующего анализа.

    Создание файлов на диске

    Далее создадим один большой файл на нашем диске. Сделать это проще всего утилитой dd, которая поставляется по умолчанию вместе с системой (предварительно создадим пару каталогов):

    И ещё создадим 10 маленьких файлов, но другим способом:

    Теперь снова смотрим два вывода df:

    Как видно, теперь на диске занято 75%. А что с инодами?

    Количество инод изменилось на 13, хотя файлов мы создали всего 11.

    Эксперимент с удалением открытого файла

    Теперь посмотрим на ситуацию другой утилитой, которую также обязательно нужно использовать для диагностики. Речь о du:

    Примерно занят 1ГБ.

    Теперь сымитируем что-то похожее на блокировку файла (если будут предупреждения, соглашайтесь):

    Команда просто открывает файл на чтение и отправляет задание в бэкграунд. Теперь удаляем файл:

    После этого проверяем свободно место:

    И свободные иноды:

    В итоге место не освободилось, хотя файл, казалось бы, удален. Инодов используется столько же. Но может быть du покажет нам что-то другое:

    Занято 8Кб. Ок, есть ещё одна утилита, которая лучше других объяснит что происходит, это lsof:

    Мы посмотрели все, что хотели, можно заканчивать.

    Завершение эксперимента

    Сворачиваем наш эксперимент — убиваем процесс, который мы ранее запустили в фоновом режиме:

    Теперь снова проверяем свободное место:

    Большой файл удалился, место и иноды освободились. Смысла проверять вывод du нет, она покажет то же самое, что и в предыдущий раз.

    Выводы

    Что все же произошло? А произошло следующее: информация от du и df до удаления большого файла была очевидной и объяснений не требует. За исключением одного момента — почему файлов создали 11, а количество инодов увеличилось на 13? Тут все просто. Наверно все слышали выражение, что все в линуксе — файл 1 ? И каталог тоже, а их мы создали два.

    Далее мы удалили файл, который открыт на чтение другим процессом. Команда rm удалила ссылку на файл, которую хранит объект каталога, но не смогла удалить файл физически с диска, поскольку файл был открыт на чтение другой программой.

    Хоть файл уже и не имел имени, но все ещё имел файловый дескриптор (= инод), к которому продолжала обращаться программа. Это было также хорошо заметно по выводу lsof — файл был помечен как удаленный. Как только программу остановили, файл освободился и система смогла завершить начатое — удалить файл и зависимые структуры данных на диске окончательно.

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

    Источник

  • Оцените статью