Rinzwind já apresentou razões pelas quais barras e outros caracteres especiais não são desejáveis em nomes de arquivos e diretórios. Minha resposta apresenta uma solução simples através dos scripts do Nautilus.
Introdução
O script a seguir depende da existência do arquivo .directory_description
em cada diretório (observe o ponto inicial). Se o arquivo não existir, o usuário será solicitado a criar um.
As vantagens desta abordagem são:
-
Simples de usar:
.directory_description
é apenas um arquivo de texto, portanto, simplesmente editável via editor de texto. É só clicar com o botão direito do mouse, de modo que até usuários não técnicos possam usá-lo. -
A descrição faz parte do diretório, portanto, ao fazer backup do diretório corretamente (com a inclusão de todos os arquivos, incluindo os arquivos de ponto), também será feito o backup da descrição.
Obtendo o script
O script está disponível como parte do meu repositório do github e abaixo. Para quem tem git
instalado, use os seguintes passos no terminal.
-
cd ~/.local/share/nautilus/scripts
-
git clone https://github.com/SergKolo/nautilus_scripts
Aqueles que não têm git
seguem estas etapas:
- copie o código-fonte diretamente desta resposta.
- Salve o código como
~/.local/share/nautius/scripts/read_dir_description.py
file. - Verifique se ele é executável com
chmod +x ~/.local/share/nautius/scripts/read_dir_description.py
Agora, toda vez que você clicar com o botão direito no diretório e acessar o menu scripts
, poderá executar read_dir_description.py
nesse diretório.
Código-fonte do script:
#!/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()
Script em ação
Acessando o script via clique direito
Dialognotificandoqueadescriçãonãoexiste
Exemplodedescriçãododiretório