Обычно программы Linux хранят настройки пользователя в каталогах ~ /.*. Но, к сожалению, некоторые разработчики (в некоторых нужных мне приложениях) не следуют этому правилу и не начинают свои имена папок с настройками с точки. Это приводит к тому, что неиспользуемые пользователем папки загромождают (возможно, не правильное слово, поскольку их не так много, но они все равно раздражают) домашнего каталога. Переименовать их нельзя, поскольку приложения в этом случае их не найдут (и создадут заново).
Есть ли способ скрыть папку, не имеющую точки, начинающую свое имя с отображения в обычных браузерах файловой системы (на самом деле я использую Thunar из XFCE вместе с Midnight Commander и Krusader, но не прочь узнать и о Nautilus ).
Наутилус (Обновление: теперь это должно работать и с Thunar) скроет любой файл или папку, перечисленные в файле .hidden
, расположенном в том же каталоге.
Есть два способа скрыть папку в Nautilus:
Сохраните следующий код в новом файле в вашей домашней папке. Назовите это Hide
.
#!/usr/bin/env python
import commands
from os.path import join
files = commands.getoutput("echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")
cwd = commands.getoutput("echo $NAUTILUS_SCRIPT_CURRENT_URI")
cwd = cwd[7:]
for f in files.split(" /"):
f = f.split("/")[-1]
commands.getoutput("echo "+f+" >> "+join(cwd, ".hidden"))
Для установки сценария выполните следующую команду:
cp Hide ~/.local/share/nautilus/scripts/ && chmod u+x ~/.local/share/nautilus/scripts/Hide
В Nautilus выберите один или несколько файлов / папок и щелкните правой кнопкой мыши. Выберите Скрыть в меню Сценарии :
Перезагрузить текущее местоположение ( F5 kbd> ) и выбранные файлы / папки будут скрыты.
Скажем, вы хотите скрыть папку под названием «Величайшие хиты Рика Эстли», просто выполните следующую команду:
echo "Rick Astley's Greatest Hits" >> .hidden
Откройте synaptic и найдите «nautilus-hide», установите его. Выйти и войти. Теперь щелкните правой кнопкой мыши по любому файлу или папке. Теперь вы увидите опцию «Скрыть» в контекстном меню.
Это не изменит имя, но скроет папку.
Я изменил хороший сценарий Элвина , чтобы он (надеюсь) был более Pythonic (и потенциально быстрее, если было добавлено много файлов, поскольку .hidden
открывается только один раз):
#!/usr/bin/env python
import os
files = os.environ["NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"].split()
# According to https://help.ubuntu.com/community/NautilusScriptsHowto
# the list is newline-delimited, which is split()'s default separator
# No need for NAUTILUS_SCRIPT_CURRENT_URI
cwd = os.path.dirname(files[0])
# Assuming all selected files are in the same path, I cannot imagine why not
# Instead of relying on "echo ... >> ..." use Python's IO:
with open(os.path.join(cwd, ".hidden"), "a") as hidden:
hidden.write("\n".join(
[os.path.basename(f) for f in files.split()]))