Я храню свои изображения в этой структуре:
YYYY/MM/DD-foo
-foo
является дополнительным и краткое описание события.
Иногда я хотел бы сохранить длинное описание для этого каталога.
Я думаю ответ, "Можно использовать программу X для изображений", не помогает.
Я хотел бы иметь решение, которое работает на каталоги, содержащие текстовые или звуковые файлы, также.
Вопрос: Как дать каталогу длинное описание? Описание, которое может содержать новые строки и другие символы как наклонная черта?
Обновление
И Вы не можете просто снабдить текстовые файлы описаниями в каталогах?
Да я мог сделать это. Но я думал, что уже существует конвенция или спецификация для этого.
Я хотел бы видеть это в наутилусе:
Я не мог найти спецификацию метаданных для каталогов сам.
rsync
, tar
, Dropbox или owncloud должны работать.Rinzwind уже представил причины, почему наклонные черты и другие специальные символы не желательны в именах файлов и именах каталогов. Мой ответ представляет простое обходное решение с помощью сценариев Наутилуса.
Следующий сценарий полагается на существование .directory_description
файл в каждом каталоге (отмечают ведущую точку). Если файл не будет существовать, то пользователю предложат создать того.
Преимущества этого подхода:
Простой использовать: .directory_description
просто текстовый файл, поэтому просто доступный для редактирования с помощью текстового редактора. Это - просто действие щелчка правой кнопкой, поэтому даже нетехнический пользователь может использовать его.
Описание является частью каталога, поэтому при надлежащем резервном копировании каталога (с включением всех файлов, включая точечные файлы), описание будет сохранено также.
Сценарий доступен как часть моего репозитория GitHub, а также ниже. Для тех, кто имеет git
установленный, используйте следующие шаги в терминале.
cd ~/.local/share/nautilus/scripts
git clone https://github.com/SergKolo/nautilus_scripts
Те, кто не имеет git
выполните эти шаги:
~/.local/share/nautius/scripts/read_dir_description.py
файл. chmod +x ~/.local/share/nautius/scripts/read_dir_description.py
Теперь, каждый раз Вы щелкаете правой кнопкой по каталогу и переходите в scripts
меню, Вы сможете работать read_dir_description.py
на том каталоге.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Author: Serg Kolo
Date: Aug 16,2016
Written for: http://askubuntu.com/q/809925/295286
"""
import subprocess
import sys
import os.path
def display_file(textfile):
""" Displays file containing
directory description if
the file exists
"""
subprocess.call([
'zenity',
'--text-info',
'--filename=' + textfile
])
def create_file(textfile):
""" Creates text file containing
directory description
if the description doesn't exist
"""
try:
err_text = '"This directory doesn\'t have description.' +\
'Would you like to create one now?"'
subprocess.check_call([
'zenity',
'--error',
'--text=' + err_text
])
except subprocess.CalledProcessError:
sys.exit()
# ensure we create the file
with open(textfile,'w') as text:
text.write('')
try:
output = subprocess.check_output([
'zenity',
'--text-info',
'--editable',
'--filename=' + textfile
])
except subprocess.CalledProcessError:
sys.exit()
with open(textfile,'w') as text:
text.write(output.decode())
def main():
file_name = '.directory_description'
directory = os.path.abspath(sys.argv[1])
file_path = os.path.join(directory, file_name)
if os.path.isfile(file_path):
display_file(file_path)
else:
create_file(file_path )
if __name__ == '__main__':
main()
Доступ к сценарию через щелчок правой кнопкой
Диалоговое окно, уведомляющее, что описание не существует
Демонстрационное описание каталога
Вы могли использовать Расширенные Атрибуты файла. После установки пакета attr
можно сделать, например, что-то вроде этого:
setfattr -n user.comment -v "this is a comment" directory_name
и читают его с:
getfattr -n user.comment directory_name
Согласно этот сайт существует пакет, названный eiciel
, который интегрируется в Наутилусе.
Наклонные черты и другие символы ASCII не являются проблемой, однако другие символы могут быть хитрыми, видеть https://unix.stackexchange.com/questions/138768/what-is-this-seemingly-base64-data-set-by-setfattr.
rsync
, cp
, scp
и вероятно большинство других стандартных инструментов или сохраняет расширенные атрибуты или имеет опцию сохранить ее.