Expandindo variáveis de ambiente no Nautilus

2

Eu tenho uma pasta "sandbox" no meu PC 13.10, que eu uso para qualquer coisa ao longo das linhas de "teste", ou se eu estou atualizando um pedaço de código e quero que ele seja completamente separado de todo o resto. Para ter uma certa quantidade de pedidos, tenho essa divisão em subpastas, na seguinte estrutura:

  

/ data / Work / sandbox / mmyy / ddmmyy

(por exemplo, a pasta de hoje é /data/Work/sandbox/0214/260214 .)

Para poder mudar rapidamente para este diretório, configurei meu .bashrc para atribuir uma variável de ambiente, $TODAYSAND , que muda diariamente e aponta para a pasta correta, usando o comando date :

TODAYSAND="/data/Work/sandbox/'date +%m%y/%d%m%y'"

Isso funciona bem em shells, por isso removi esta linha de .bashrc e a adicionei ao meu profile.d em um novo script, /etc/profile.d/sandbox.sh . Continua a originar corretamente e nos terminais ainda posso cd $TODAYSAND sem problemas.

Agora gostaria de definir um marcador no Nautilus que aponte para essa pasta e mude dinamicamente da mesma maneira, para que eu não tenha que rastrear a mais recente todas as vezes. No entanto, não consigo nem aceitar $TODAYSAND como um nome de pasta. Se eu digitá-lo na barra superior (digitando um / para me deixar inserir um caminho em vez de pesquisar), ele tenta ir para um arquivo inexistente chamado literalmente /$TODAYSAND e me dá um erro dizendo que isso não funciona existe. Da mesma forma, se eu fizer um marcador apontando para $TODAYSAND , a) cria-o com o mesmo ícone como se eu tivesse dito para marcar um local de rede, e b) cai instantaneamente do Nautilus quando clico nele.

Como posso fazer o Nautilus aceitar essa variável como um caminho de arquivo válido?

    
por Jez W 26.02.2014 / 15:36

1 resposta

1

Eu não encontrei uma maneira de passar as variáveis Environment para o Nautilus.

  

Aqui está a resposta "Como atualizar um marcador dinamicamente?"

No Ubuntu 12.04, o Nautilus armazena marcadores em ~/.gtk-bookmarks no seguinte formato

file:///home/username/Documents
....
file:///path/to/0214/260214

Você pode usar uma pequena função bash para alterar a última linha para

file:///path/to/0214/270214

Isso alterará o marcador dinamicamente. Aqui está o script

updt_sand_box(){
if [ -d /path/to/"$(date +%m%y)"/"$(date +%d%m%y)" ]; then
    sed -i "s#$(date --date yesterday "+%d%m%y")#$(date +%d%m%y)#" ~/.gtk-bookmarks
else
    zenity --info --text="/path/to/$(date +%m%y)/$(date +%d%m%y) does not exist"
fi
}

Coloque a função acima em ~/.bashrc e forneça-a,

. ~/.bashrc

Para atualizar o marcador de sandbox, insira seu terminal

updt_sand_box

Você pode usar o script acima de várias maneiras. Você pode criar um cronjob (use a variável DISPLY ) ou colocá-lo em ~/.bashrc ou em qualquer lugar para que possa ser executado.

Provavelmente o mais novo Ubuntu armazena marcadores em ~/.config/gtk-3.0/bookmarks , você precisa modificar o script de acordo.

Substitua ~/.gtk-bookmarks por ~/.config/gtk-3.0/bookmarks no script acima.

    
por souravc 27.02.2014 / 05:31