суббота, 20 января 2018 г.

Save Page WE в Firefox – сохранение страницы в один файл html

По умолчанию, в Firefox команда "Сохранить файл как веб-страница полностью" сохраняет содержание просматриваемой страницы как файл.html и каталог файл_files. при этом каталог содержит сохранённую графику и скрипты, присутствующие в коде просматриваемой страницы. Мало того, что хранение файла и каталога представляется не совсем удобным (особенно если они имеют русскоязычные имена), так ещё и при удалении файла html сопутствующий ему каталог файл_files приходится удалять дополнительно, так как вместе с файлом он автоматически не удаляется. Существующее неудобство может устранить дополнение Save Page WE, при использовании которого контент сохраняется в единый файл html.

Примечание. В русской локализации браузера мной отмечена некоторая "путаница". Так, в меню "Инструменты" присутствует пункт "Дополнения". Но при переходе в дополнения в левом меню имеется пункт "Расширения". Поэтому даже не знаю, как теперь говорить правильно. В тексте далее будет использоваться термин "дополнение".



Установленное дополнение отображается в верхней правой части браузера. Если в настройках браузера указано отображение при запуске "пустая страница" или адрес about:blank, то значок Save Page WE отображается как неактивный, но при переходе на какой-либо ресурс он становится активным.



Кроме того, по умолчанию включена интеграция Save Page WE в правое контекстное меню. Если обратиться к настройкам дополнения (Options), то можно увидеть 2 секции, первая из которых определяет режим сохранения, а вторая – сохраняемые элементы. Устанавливая и убирая галочки в соответствующих полях можно настроить дополнение.


General – общие настройки

Button Action – действие по нажатию кнопки
-----------------
Save Current State – сохранить текущее состояние
Save Chosen Items – сохранить выбранные элементы
Save Complete Page –  сохранить страницу полностью

User Interface – интерфейс пользователя
-----------------
Show add-on submenu on context menu – показывать подменю дополнения в контекстном меню
Show warning if any resources cannot be saved  – показывать предупреждение для любого ресурса, который не может быть сохранён
Show list of all resources that cannot be saved –  показывать список ресурсов, которые не могут быть сохранены
Prompt to enter comments when saving file – предлагать ввести комментарий к сохраняемому файлу

Save Method – метод сохранения
----------------
Use page loader to reduce saved file size – использовать загрузчик страницы в целях снижения размера сохранённого файла
Remove URL's of all unsaved resources – удалить ссылки на все несохраняемые ресурсы
Include information bar at top of page – включить информационный бар вверху страницы
Include metrics and resource summary – включить ресурсные метрики и резюме


Saved Items – сохраняемые элементы

Current State:  – сохраняемые элементы при действии Save Current State (см. выше)
-----------------
HTML elements (including multimedia)  – элементы HTML (включая мультимедиа)
CSS style sheets  – каскадные таблицы стилей
HTML images (currently displayed)  – отображаемые на момент сохранения изображения, перечисленные в коде страницы
CSS images (currently displayed) – отображаемые на момент сохранения изображения, указанные в каскадных таблицах стилей
CSS fonts (used by this browser) – используемые браузером шрифты, описанные через каскадные таблицы стилей

Additional:  – дополнительно включаемые элементы для сохранения через Save Current State (см. выше)
--------------
HTML elemets (audio & video) – элементы HTML (видео и звук)
HTML elemets (objects & embed) – элементы HTML (объекты и внедрённые через embed контент)
HTML images (all) – все изображения, перечисленные в коде страницы
CSS images (all) – все изображения, перечисленные в каскадных таблицах стилей
CSS fonts (woff for any browser) – шрифты, перечисленные в каскадных таблицах стилей (шрифты woff для любых браузеров)
Scripts – скрипты

среда, 17 января 2018 г.

Значки (icons) Linux Mint в Runtu

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

Всё хорошо, но, как недаром говорят, "привычка – вторая натура". Моя привычка видеть тему значков именно от Linux Mint вынудила меня искать способ оформить внешний вид Runtu максимально приближенным к Linux Mint. В частности, это касается значков (иконок) каталогов и файлов. При этом меня интересовали не все темы значков, а тема Mint-X-Grey.



Чтобы установить в Runtu тему значков Mint-X необходимо перейти на ресурс Linux Mint, откуда можно эти значки скачать:
 http://packages.linuxmint.com/pool/main/m/mint-x-icons/

На момент написания этой заметки файлом последней версии, содержащим необходимые мне значки темы оформления, являлся архив mint-x-icons_1.4.tar.xz


Примечание. Собственно говоря, можно было бы и использовать файл mint-x-icons.4.6_all.deb, но так как меня интересовала только тема Mint-X-Grey, был скачан именно архив tar.xz, поскольку все дальнейшие действия предусматривалось произвести вручную.

Из всего архива будут использоваться только 2 каталога: сам каталог Mint-X и каталог "серых значков" Mint-X-Grey.






Именно эти 2 каталога мной были помещены в каталог /usr/share/icons. Для выполнения этой операции достаточно запустить Thunar с правами суперпользователя, выполнив в терминале команду  sudo thunar.


Чтобы система "увидела" новую тему оформления, необходимо обновить кэш значков. Для этого в терминале выполняется команда
  sudo update-icon-caches /usr/share/icons/*

После выполнения команды выше, вызвать диспетчер настроек "Приложения – Настройки – Диспетчер настроек" и выбрать тему оформления значков.


воскресенье, 14 января 2018 г.

Удаление лишних шрифтов в Linux Mint 18.3

Ранее мной предпринимались усилия по удалению "ненужных" для моих потребностей установленных по умолчанию шрифтов в Linux Mint. В частности, к ним отношу нндийские, китайские, тайские, кхмерские, лаоские, эфиопские и т.п. шрифты. Если запустить Libre Office Writer и выбирать шрифт, которым будет отображаться набираемый на русском языке текст, то можно обнаружить обилие шрифтов с непонятными символами других языков. Если так можно выразиться, это является своего рода платой за универсальность и мультиязычность.

В Linux Mint 18.3 разработчиками был изменён интерфейс менеджера программ. Можно даже сказать, что он был переработан. При попытке по-быстрому решить вопрос с удалением ненужных мне шрифтов, как это делалось ранее, меня ожидал "сюрприз" в виде невозможности прокрутить движок с перечнем шрифтов до самого конца по причине того, что данный перечень отображался не полностью. В связи с этим появилась идея написать для себя перечень терминальных команд для полного удаления "лишних" шрифтов.

Как и ранее, процедура условно состоит из нескольких действий.

1. Запустить "Параметры системы" – "Языки".


Нажать нижнюю кнопку "Установка и удаление языков" и удалить все языки, оставив только английский и русский.


2. Запустить терминал и выполнить набор команд, которые удалят ненужные шрифты, наборы ненужных шрифтов и установят пакет шрифтов от Microsoft.

3. Скачать архив и добавить в каталог /usr/share/fonts/truetype каталоги droid и noto полностью, а содержимое каталога msttcorefonts поместить в уже существующий каталог msttcorefonts. Предлагаемый каталог msttcorefonts содержит шрифты calibri и tahoma, которые отсутствуют в устанавливаемом наборе msttcorefonts и их необходимо добавлять отдельно.

Скачать архив и распаковать его желательно заранее, так как в процессе выполнения терминальных команд полностью удаляются все шрифты noto, которыми оформлена система. Полное удаление обусловлено тем, что при удалении noto-unhinted, noto-hinted и noto-cjk система также требует удаления и fonts-noto-mono.

  Обратите внимание,  что при использовании DE Cinnamon при удалении набора fonts-wqy-microhei Ваша система может "рухнуть", поэтому найдите фразу fonts-wqy-microhei и, на всякий случай, исключите её из набора команд. По крайней мере,при использовании мной ранее Cinnamon при назначении команды для удаления fonts-wqy-microhei система меня "грозно предупреждала", что это может вызвать удаление важных компонентов Cinnamon.

Предлагаемый ниже набор команд составлялся для Linux Mint 18.3 xfce.

Выполните в терминале в одну строку:

sudo apt purge fonts-nanum fonts-gujr-extra fonts-guru-extra fonts-telu-extra fonts-knda fonts-beng-extra fonts-deva-extra fonts-guru fonts-orya fonts-telu fonts-beng fonts-mlym fonts-taml fonts-gujr fonts-lohit-taml-classical fonts-deva fonts-takao-pgothic fonts-khmeros-core fonts-indic fonts-gargi fonts-navilu fonts-kalapi fonts-lao fonts-sarai fonts-gubbi fonts-sahadeva fonts-pagul fonts-tlwg-garuda fonts-tlwg-garuda-ttf fonts-tlwg-kinnari fonts-tlwg-kinnari-ttf fonts-tlwg-laksaman fonts-tlwg-laksaman-ttf fonts-tlwg-loma fonts-tlwg-loma-ttf fonts-tlwg-mono fonts-tlwg-mono-ttf fonts-tlwg-norasi fonts-tlwg-norasi-ttf fonts-tlwg-purisa fonts-tlwg-purisa-ttf fonts-tlwg-sawasdee fonts-tlwg-sawasdee-ttf fonts-tlwg-typewriter fonts-tlwg-typewriter-ttf fonts-tlwg-typist fonts-tlwg-typist-ttf fonts-kacst fonts-orya-extra fonts-noto fonts-nakula fonts-tlwg-typo fonts-tlwg-typo-ttf fonts-tlwg-umpush fonts-tlwg-umpush-ttf fonts-tlwg-waree fonts-tlwg-waree-ttf fonts-lohit-deva fonts-lohit-gujr fonts-lohit-guru fonts-lohit-knda fonts-lohit-mlym fonts-lohit-orya fonts-lohit-taml fonts-lohit-telu fonts-samyak-deva fonts-samyak-gujr fonts-samyak-mlym fonts-samyak-taml fonts-kacst-one fonts-lohit-beng-assamese fonts-lohit-beng-bengali fonts-sil-padauk fonts-lklug-sinhala fonts-noto-cjk fonts-tibetan-machine fonts-wqy-microhei fonts-noto-hinted fonts-noto-mono fonts-noto-unhinted fonts-sil-abyssinica fonts-thai-tlwg fonts-smc && sudo apt install ttf-mscorefonts-installer

После подтверждения полномочий в систем будет выдано сообщение:

обновлено 0, установлено 0 новых пакетов, для удаления отмечено 83 пакетов, и ... пакетов не обновлено.
После данной операции, объём занятого дискового пространства уменьшится на 213 MB.
Хотите продолжить? [Д/н]

Можно ответить y в латинской раскладке, система поймёт.

Завершение всех операций сопровождается сообщением

All done, no errors.

Откройте менеджер файлов с правами суперпользователя, sudo thunar (для xfce), или sudo nemo (для Cinnamon), или sudo caja (для Mate) и выполните действия, указанные в пункте 3 (см. выше).

В результате, содержание каталога /usr/share/fonts/truetype должно быть примерно таким:


пятница, 12 января 2018 г.

Периодическая парковка головок жёсткого диска Toshiba в Linux

Достался мне по случаю винчестер Toshiba MQ01ABD050 (AX002K), который стал использоваться в небольшом стационарном персональном компьютере безвентиляторного исполнения.

Однако через некоторое время на слух стали восприниматься щелчки. Как показало "следствие", ситуация соответствовала описанному ниже.

В ноутбуках иногда встречается проблема, когда жесткий диск каждые 10-20 секунд издает щелчок. Щелчок – это ни что иное как парковка головок жесткого диска.

В некоторых моделях лаптопов происходит периодическая парковка головок жёсткого диска. Наблюдается на разных моделях лаптопов и жёстких дисков в них. Периодичность этого явления зависит от режима работы. При работе от батарей парковка происходит один раз в 10 минут. При работе от сети - 2 раза в минуту. Диски большинства производителей паркуются довольно редко (несколько раз в час). Теоретически, проиводители жёстких дисков дают гарантию, что устройство может выполнить ль 300 до 600 тысяч циклов парковки. Если пересчитать на часы работы жёсткого диска, то это составит явно меньше ожидаемого срока работы ноутбука в целом. Кроме того, в полной тишине звук парковки отчётливо слышен и действует на нервы. Описать звук сложно, он зависит от модели жёсткого диска. Например, его сравнивают со звуком карандаша, падающего плашмя на деревянный стол или как звук ломающейся тонкой стеклянной палочки. Каждый, кто слышал этот звук, не спутает его уже больше ни с чем. Можно не полагаться на слух, а проверить наличие (или отсутствие) этого явления инструментально.

В стандартной версии диска, APM имеет значение 128, в улучшенной – 254 (отключено). У вас закономерно должен возникнуть вопрос, а как вообще парковка головок экономит электроэнергию и ресурс батареи? Дело в том, что противоположный конец головки оснащен катушкой. При подаче "правильного" питания на катушку, она генерирует электромагнитное поле, что позволяет ей перемещаться между двух мощных постоянных магнитов (перемещая при этом противоположный конец). Что интересно, значение APM можно изменить самостоятельно. При использовании в ноутбуках полностью отключать парковку не рекомендуется, т.к. ноутбук это переносной компьютер, а одна из возможностей APM – парковка головок, которая в свою очередь защищает поверхность диска от повреждений при перемещении ноутбука (тряска, сильные вибрации, удары, ускорение). В случае со стационарным ПК парковку во время работы можно отключать, или же установить значение 250-253. Не стоит бояться, что диск перестанет парковать вообще, при отключении как и ранее, будет выполняться парковка головок в безопасную зону.

Источник: weblance.com.ua



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

При просмотре состояния SMART выявлено, что значение параметра 193, соответствующее количеству циклов позиционирования пишущей головки в зону парковки, постоянно растёт.

Так как какой-либо сервисной утилиты отключения парковок у меня не было, да и сайт www.bad-good.ru категорически не рекомендовал этого делать, пришлось, как было на нём указано, искать другой путь.

Исходя из других ресурсов интернета продвинутый пользователь решает, что частая парковка приводит к износу механики головок жесткого диска. Это верно. А далее он делает то действие, за которое ему приходится потом расплачиваться деньгами. Он отключает парковку при помощи сервисных программ производителя. Как следствие, жесткий диск неспешно сыпется меньше чем за год. Пользователь думает, что щелчки были связаны с неисправностью жесткого диска, и вот он через год и умер. Покупает следующий. И в цикле. Ищите решение этой проблемы в самой ОС, которую вы поставили; залезать во внутреннее содержимое контроллера жесткого диска противопоказано.

Не секрет, что в настоящее время "толковую" информацию найти зачастую найти тяжело. Было найдено 4 варианта решения. На системе Runtu сработал 1-й вариант.

1-й вариант. Источник – wikki archlinux.

Так как мой компьютер не использует ни ждущего, ни спящего режимов (они отключены), то было решено осуществить "Persistent configuration using udev rule".

Если у Вас отсутствуте пакет hdparm, то его можно найти через менеджер пакетов Synaptic. В Linux Mint он установлен изначально, а в Runtu – отсутствует.


После были выполнены запросы к состоянию электропитания винчестера (через терминал).

sudo hdparm -B /dev/sda
/dev/sda: APM_level = 128

sudo hdparm -S /dev/sda
-S: bad/missing standby-interval value (0..255)

sudo hdparm -M /dev/sda
/dev/sda: acoustic = not supported

В соответствии с инструкцией был создан файл, который на уровне настроек ОС решает проблему.

Запустить менеджер файлов с правами суперпользователя и в каталоге  /etc/udev/rules.d  создать файл с именем 69-hdparm.rules

Вписать в него следующее:

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sda", RUN+="/usr/bin/hdparm -B 254 -S 0 /dev/sda"

Перезагрузить систему и отследить события SMART под номером 193. У меня этот показатель перестал лавинообразно расти и за сутки непрерывной работы его значение не изменилось.

2-й вариант. Источник – pingvinoff.net.

Cоздать файл 95hdparm-apm в каталоге /etc/pm/power.d с содержанием:

#!/bin/sh
hdparm -B 254 /dev/sda

Уставить на созданный файл права на исполнение:

sudo chmod u+rwx,g+rx,o+rx /etc/pm/power.d/95hdparm-apm

После перезагрузки проверить полученный результат командой терминала:

sudo hdparm -I /dev/sda | grep -i "Advanced power management level"

3-й вариант. Источник – Решение 17 проблем Ubuntu и Linux Mint

Изменить файл /etc/hdparm.conf, вписав в него следующее:

/dev/sda {
    apm = 254
    apm_battery = 254
}

4-й вариант. (источник не помню)

Создать в /etc/init.d скрипт под именем hdparm_park (имя дано для примера, можно указать своё):

#!/bin/bash
hdparm -B 255 /dev/sda
hdparm -S 0 /dev/sda

Сделать его исполняемым:

sudo chmod +x /etc/init.d/hdparm_park

Добавить его к автозагрузке:

sudo update-rc.d hdparm_park defaults 90

*  *  *

Что означают цифры 128, 254, 255 ? (взято с англоязычных источников)

Для параметра -B

0 ... 127 – позволяют задействовать функцию винчестера spin-down;

128 ... 254 – не позволяют функции spin-down влиять на работу винчестера;

255 – полностью деактивирует функцию Advanced  Power Management.

Для параметра -S

0 соответствует "выключено";

1 ... 240 – значение, умноженное на 5, определяет интервал от 5 секунд до 20 минут;

241 ... 251 – определяющие интервалы значений 11 до 30 задают шаг в 30 минут для определения значений интервала: 30 минут ... 5,5 часов;

252 – соответствует значениям таймаутов 21 минут;

253 – значение таймаута определяется вендором;

255 – интерпретируется как 21 минута + 15 секунд.


Цитата с "древней" публикации (2010 г.): "Если значение APM установлено в диапазоне от 254 - 192 то HDD будет потреблять "по максимуму". Если в диапазоне 192 - 128 то при отсутствии обращений к диску (Hitachi) в течении 2 - 6 минут, будет произведено обесточивание соленоида актуатора, головки запаркуются на рампу, обороты шпинделя останутся на прежнем уровне. Если в диапазоне 128 - 1, то при уже обесточенном соленоиде и запаркованных головках нет обращений к диску 5 - 10 минут то скорость шпинделя снизится до 5400 об/м."


В дополнение для ноутбуков найдено ещё (было указанно для Arch, публикация давняя):

" ... лучше установить tlp и в /etc/default/tlp в строчке DISK_APM_LEVEL_ON_BAT= вместо 128 128 поставить 254 254 (обязательно включив службу systemctl enable tlp, или не знаю, какая система инициализации там у вас ...

Когда в последний раз писал мануал на эту тему, нужно было поставить параметр CONTROL_HD_POWERMGMT=1 в файле /etc/laptop-mode/laptop-mode.conf



среда, 10 января 2018 г.

Индикатор загрузок для Firefox


После перехода Firefox на новый код большинство установленных у меня под него дополнений перестало работать. Имеющийся в Firefox "родной" индикатор загрузок лично для меня не совсем удобен, так как для отображения прогресса скачивания требует лишнего щёлкания по своему значку. Решением этого вопроса может быть дополнение WX Download Status Bar.

Альтернативный "родному" индикатор загрузок работоспособен сразу же после своей установки. По умолчанию, все загрузки (текущие и завершённые) отображаются, что при их большом числе в течение одного сеанса запуска Firefox приводит к росту нижней информационной панели. Но желаемые параметры дополнения можно настроить.

Перейдите в перечень установленных дополнений, набрав в адресной строке about:addons или вызвав из меню "Инструменты – Дополнения" и напротив значка дополнения нажмите "Настройки".



Всего имеется 4 секции настроек:


Appearance – внешний вид.

Выбор: светлый (Light), тёмный (Dark) и всегда отображать индикатор (Always show the status bar), показывать сведения о загрузке (Show download info).


Автоматическое скрытие – Auto Hiding.

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

Назначение ещё одной настройки File types to hide (типы файлов для скрытия) не совсем понятно. Если судить по пояснению, то если ничего не выбрано, то все типы файлов отображаться не будут. Вероятно, здесь имеется ошибка: вместо will auto hide логичнее было бы will not auto hide и тогда если ничего не выбрано, то будут отображаться все типы файлов.


Miscellaneous – разное. Содержит галочку для включения проигрывания звукового сопровождения по завершении загрузки и интервал в миллисекундах обновления состояния индикатора загрузок.


Ignored File Types – игнорируемые типы файлов. При добавлении типов файлов файлы с указанными расширениями не будут отображаться индикатором загрузок.

Как только загрузка начнётся индикатор отобразит её в нижней левой части страницы. По умолчанию, прогресс-бар отображается зелёным цветом. Также отображаются сведения о размере скачиваемого контента и средней скорости скачивания. В левой части имеется кнопка "Clear", при нажатии на которую все завершённые загрузки удаляются из отображения. Установите галочку в поле "Auto Hide Completed Downloads" в настройках индикатора (см. выше) чтобы это происходило автоматически.


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


100 % загрузки означает завершение скачивания загружаемого контента. Если активизировать параметр "Auto Hiding", то отображение завершённых загрузок исчезнет после указанного в настройке этого параметра количества секунд.

вторник, 2 января 2018 г.

Об автоматизации очистки Корзины в Linux или "страсти" по очистке Корзины через терминал


Как правило, в процессе работы очистка Корзины в Linux производится вручную по принципу "когда дойдут руки". Однако в Linux, в отличие от Windows, Корзина является (если так можно выразиться) "резиновой". То есть со временем Вы можете столкнуться с ситуацией, когда объём занимаемого в Корзине контента станет сопоставимым с объёмом доступного для записи места на Вашем жёстком диске.

Ряд пользователей считает, что удалённые файлы и каталоги нет необходимости складывать в Корзину. Как говорится, удалил – значит удалил. Но бывает и так, что данные удалены в спешке или ошибочно и к ним необходимо вернуться. В этом случае встаёт проблема как эти данные "достать обратно". Поэтому я за то, чтобы удаляемый контент, всё-таки, в Корзину складывался.

Но при "творческой" работе про необходимость очистки Корзины забывается. Например, у меня этому способствует ещё и то, что в моей системе Корзина не отображается на рабочем столе, поэтому про её существование порой просто забываю. Поэтому, со временем, и возникла Idée fixe (фр. – укоренившаяся мысль) об организации автоматической очистки Корзины через некоторое время после старта системы. По мере накопления информации о работе Корзины в Linux и способах её автоматической решение этой задачи стало напоминать мне "страсти-мордасти".

Мало кому сегодня известно, что именно так называется ранний рассказ Максима Горького в его цикле рассказов "По Руси". В рассказе писатель отсылает к русской колыбельной песни, в которой как раз слова про страсти-мордасти. Страсти-мордасти означают трудности и тяжелую жизнь маленького обыкновенного человека ... 

У кого не было необходимости проявлять любознательность в вопросах гибкой настройки системы "под себя" рассмотрение вариантов решения вопроса об автоматической очистке Корзины в Linux может превратиться в "вынос головного мозга".

Пояснение "конструкции" Корзины в Linux

Итак, в Ubuntu и Linux Mint файлы Корзины (Trash) расположены в скрытом каталоге. Если, условно говоря, под логином пользователя подразумевать user, то Корзина расположена по пути /home/user/.local/share/Trash  Для того, чтобы увидеть её полное содержимое необходимо в файловом менеджере включить отображение скрытых файлов (обычно комбинацией клавиш ctrl и h). В каталоге Trash Вы увидите 3 каталога:


Удаляемый контент помещается в каталог files. В нём могут находиться как файлы, так и каталоги. Каталог info содержит только файлы с расширением trashinfo, например, file1.trashinfo  Эти файлы можно открыть текстовым редактором и посмотреть их содержимое. Ниже для примера указано содержание файла Trash-1.png.trashinfo, соответствующего рисунку выше.

[Trash Info]
Path=/home/user/%D0%98%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F/Trash-1.png
DeletionDate=2017-12-11T11:14:44

Если воспользоваться декодировщиком ссылок, то после декодирования содержание строки Path= приобретёт вид: /home/user/Изображения/Trash-1.png

Для комплекта вот Вам ещё и англоязычный декодировщик: https://www.urldecoder.org

Таким образом, файлы каталога info содержат сведения о местоположении и времени удаления каждого из объектов каталога files.

В каталог expunged помещается контент, который был удалён, но по каким-то причинам полного удаления его произведено не было. Как указывалось в оригинале, откуда и была получена такая информация, "expunged → Deleted files but for some reason unable to delete".

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

Как сделать скрипт sh

Для создания скрипта sh запустите установленный у Вас текстовый редактор и впишите в него строку:  #!/bin/sh

Сохраните файл как файл с раcширением sh (например, script.sh). Пометьте его как исполняемый файл. Проще всего это сделать в менеджере файлов через его "Свойства":


Предпочитающие терминал, как правило, используют команду chmod u+x адрес_файла

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

Способы очистки Корзины через терминал

В русскоязычном сегменте Интернет наиболее часто для очистки Корзины Linux приводится команда   rm -dfr ~/.local/share/Trash/info/* ~/.local/share/Trash/files/*

Т.е. относительно домашнего каталога пользователя ~ без дополнительных запросов удаляются файлы и каталоги в .local/share/Trash/info и .local/share/Trash/files  Для понимания команды rm -dfr запустите в терминале команду rm --help

Таким образом, в рузультате получится скрипт очистки Корзины, который можно запускать через некоторое время после старта системы:

#!/bin/sh
rm -dfr ~/.local/share/Trash/info/* ~/.local/share/Trash/files/*
zenity --info --text "Очистка Корзины произведена." 2>/dev/null --timeout=5
exit

При использовании Cinnamon задержка устанавливается так. как описано здесь. При использовании xfce команда с задержкой (Настройки – Сеансы и запуск – Автозапуск) будет иметь, например, вид

sh -c "sleep 240 && /home/user/Tools/Trash-clean.sh"

В приведенной выше команде цифра 240 соответствует числу секунд (4 минуты), по истечении которых работа команды sleep будет завершена и будет выполнен собственно сам файл sh.

Однако в случае нахождения в Корзине ранее удалённых Вами скрытых каталогов с определённым числом вложенных элементов, например,



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




На одном из сайтов для очистки Корзины через терминал приводятся команды:

cd ~/.local/share/Trash

find . -delete

Т.е. перейти в каталог .local/share/Trash, найти и удалить всё, что там находится. После этой команды упоминаемые выше каталоги expunged, files, info будут также удалены. Правда при первой же операции удаления в Корзину данные каталоги будут вновь автоматически созданы системой.

На другом сайте автор публикации предлагает команды:

rm -rf ~/.local/share/Trash

mkdir ~/.local/share/Trash

mkdir ~/.local/share/Trash/expunged

mkdir ~/.local/share/Trash/files

mkdir ~/.local/share/Trash/info

Т.е. удалить каталог .local/share/Trash со всем его содержимым, создать его снова и далее во вновь созданном каталоге Trash создать каталоги expunged, files, info. По большому счёту данные варианты являются равнозначными.

Корзины в Linux на других дисках и съёмных носителях

Наверняка Вы заметили, что при использовании подключаемых съёмных носителей или дополнительных жёстких дисков компьютера файловые системы которых монтируются, на них создаются свои Корзины в виде скрытых каталогов .Trash-1000   1000 – это ID пользователя в системе, под которым он работает. Т.е. если Вы 1-й или единственный пользователь Linux, то с высокой степенью вероятности Ваш ID будет 1000. Для второго пользователя, который был создан позднее, ID, скорее всего, будет 1001.

На одном из моих компьютеров имеется 2 дополнительных винчестера, отформатированных как 1 раздел = 1 диск. И если для того винчестера, на котором установлена система, Корзина расположена по пути  .local/share/Trash,  то для других разделов Корзина будет соответственно по пути
  /media/user/Disk-1/.Trash-1000  и  /media/user/Disk-2/.Trash-1000

Так как в моём случае происходит автомонтирование дисков при старте системы, то у меня Корзины расположены в  ~/G-2/.Trash-1000  и  ~/N-2/.Trash-1000  (точками монтирования разделов являются каталоги G-2 и N-2). Про автомонтирование можно прочитать здесь.

Поэтому наряду с очисткой .local/share/Trash мне необходимо произвести и очистку  G-2/.Trash-1000  и  N-2/.Trash-1000

Исходя из описанного выше, возможны 2 варианта реализации, которые равнозначны. Первый вариант использует, если так можно выразиться, "мягкое" удаление, а второй – "жёсткое".

Вариант 1

#!/bin/sh
cd ~/.local/share/Trash/info
find . -delete
cd ~/.local/share/Trash/files
find . -delete
cd ~/G-2/.Trash-1000/info
find . -delete
cd ~/G-2/.Trash-1000/files
find . -delete
cd ~/N-2/.Trash-1000/info
find . -delete
cd ~/N-2/.Trash-1000/files
find . -delete
zenity --info --text "Корзина очищена." 2>/dev/null --timeout=5
exit

То есть, в каждом из разделов система последовательно "ходит" в каталоги Корзины info и files и удаляет из них содержимое. После выполнения всех операций отображается информационное сообщение "Корзина очищена.", которое автоматически исчезает через 5 секунд.

Вариант 2

#!/bin/sh
cd ~/.local/share/Trash
find . -delete
mkdir ~/.local/share/Trash/expunged
mkdir ~/.local/share/Trash/files
mkdir ~/.local/share/Trash/info
cd ~/G-2/.Trash-1000
find . -delete
mkdir ~/G-2/.Trash-1000/expunged
mkdir ~/G-2/.Trash-1000/files
mkdir ~/G-2/.Trash-1000/info
cd ~/N-2/.Trash-1000
find . -delete
mkdir ~/N-2/.Trash-1000/expunged
mkdir ~/N-2/.Trash-1000/files
mkdir ~/N-2/.Trash-1000/info
zenity --info --text "Корзина очищена." 2>/dev/null --timeout=5
exit

То есть, каждом из разделов система последовательно "ходит" в каталоги Корзины и удаляет из них всё, после чего снова создаёт каталоги expunged, files, info. После выполнения всех операций отображается информационное сообщение "Корзина очищена.", которое автоматически исчезает через 5 секунд.

Если вместо информационного сообщения по центру экрана Вы предпочитаете видеть вплывающие системные уведомления (оповещения), то вместо строки

zenity --info --text "Текст сообщения." 2>/dev/null --timeout=3

используйте строку  notify-send -i info "Текст сообщения."

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

sudo apt install libnotify-bin

А если необходимо удалить содержимое Корзины только старше N дней?

В этом случае используется более сложная конструкция команд удаления. В приведенном ниже примере сначала происходит удаление сведений о всех объектах в Корзине старше 3 дней (как указывалось выше, в каталоге info расположены только файлы, содержащие сведения о помещённых в Корзину объектах), а затем должны удаляться файлы и каталоги также старше 3 дней.

find /home/user/.local/share/Trash/info -type f -mtime +3 -exec rm -rf {} \;
find /home/user/.local/share/Trash/files -type f -mtime +3 -exec rm -rdf {} \;
zenity --info --text "Файлы старше 3 дней в Корзине удалены." 2>/dev/null --timeout=5
exit

В данном примере N=3, то есть +3 как раз и является условием выбора "старше 3 дней".

Однако в моём случае такой скрипт в отношении каталогов не сработал. То есть файлы старше 3 дней удаляются без вопросов и даже в каталогах. Но вот сами каталоги так и остаются в Корзине. Не помогло даже включение в скрипт дополнительной команды

find /home/cemea/.local/share/Trash/files -type f -mtime +3 -execdir rm -rdf {} \;

Решение вопроса было получено позднее через скрипт для собственных нужд, описанный в публикации "Очистка объектов Корзины старше N дней через bash".