Я могу продолжить воспроизведение видео после того, как я нажму Shift-Delete. Освобождается ли дисковое пространство, когда я закрываю проигрыватель?

Я могу продолжить воспроизведение видео после того, как я нажму Shift-Delete. Освобождается ли дисковое пространство, когда я закрываю проигрыватель?

Я заметил, что на самом деле я могу нажать Shift-Delete (т. е. не отправить в корзину) для видео, которое в данный момент воспроизводится, и оно все равно продолжит воспроизводиться, даже если на него нет именованной ссылки в nautilusили ls(терминале).

Освобождается ли место на диске нормально, когда проигрыватель заканчивает воспроизведение видео?

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

решение1

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

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

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

Это происходит потому, что (насколько я понимаю) файлы состоят из самих данных и дескрипторов (местоположения в файловой системе) файла. Обычно у вас есть только один дескриптор для файла, но вы можете создать другие, используя команду lnдля создания жесткой ссылки. Это создает то, что кажется идентичной копией вашего файла, но на самом деле просто добавляет еще один дескриптор - так что вы не использовали дважды дисковое пространство. Вы можете проверить это, посмотрев на inode двух файлов - он скажет вам, где на самом деле находятся данные.

Например, в окне терминала:

ln existing_movie.avi movie_hardlink.avi

ls -i

Аргумент -i команды ls показывает информацию об инодах файлов — они должны быть идентичны.

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

решение2

читатьhttp://linuxgazette.net/105/pitcher.html, вы поймете почему (и узнаете разницу между жесткими и мягкими ссылками)

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