Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Pracovní prostředí => Téma založeno: Uran 17 Září 2010, 08:47:52

Název: nautilus akce a skripty
Přispěvatel: Uran 17 Září 2010, 08:47:52
Chtel jsem si udelat jednoduchy skript pro nautilus, ktery by mi vytvarel z adresaru a souboru symlinky do urcite slozky a nejak jsem se zasekl na souborech co maji v nazvech mezeru.

Akce v Nautilusu
Kód: [Vybrat]
ln -s "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" /mnt/data/books/Precist/
Vytvori se symlink, ktery je vsak neplatny
Kód: [Vybrat]
jakub@jakub-laptop:/mnt/data/books/Precist$ file 'aaKnižní řady
'
aaKnižní řady
: broken symbolic link to `/mnt/data/books/Knihovna/aaKnižní řady\012'

Co je to za znak \012?

Potom jeste mensi dotaz. Nejde nejak zaridit aby se skripty zobrazovaly v nejvyssi urovni kontextoveho menu a ne v podmenu "Skripty"?
Název: Re: nautilus akce a skripty
Přispěvatel: Uran 17 Září 2010, 09:36:00
Tak jsem nasel a upravil (uzavreni poromenych do ") skript
Kód: [Vybrat]
#!/bin/sh
#Linker...Creates a link into your home directory
# With thanks to Doug Nordwall
for arg
do
 ln -s "$PWD"/"$arg" /mnt/data/books/Precist/"$arg"
done

U slozek to funguje, ale pro jednotlive souboru uz ne.

Edit: beru zpet skript funguje, akorat kdyz v Nautilu pouziju tu stromovou strukturu (+ na rozbaleni slozek v aktualnim adresari) tak to skript vyhodnoti jako ze jsem porad v aktualnim adresari a nikoliv v rozbalenem podadresari. Jde to nejak osterit?
Název: Re: nautilus akce a skripty
Přispěvatel: GdH 17 Září 2010, 12:02:13
Já bych na to šel zhruba takto:
Kód: [Vybrat]
#!/bin/bash

echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | sed '$d'| while read LINE # sed odstraní poslední prázdnou řádku
   do
ln -s "$LINE" /mnt/data/books/Precist/
   done
Název: Re: nautilus akce a skripty
Přispěvatel: Uran 17 Září 2010, 12:56:01
Já bych na to šel zhruba takto:
Kód: [Vybrat]
#!/bin/bash

echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | sed '$d'| while read LINE # sed odstraní poslední prázdnou řádku
   do
ln -s "$LINE" /mnt/data/books/Precist/
   done


Dekuji funguje. Jeste nejak prijit na to jak zajistit aby se skripty ukazovali v nejvyssi urovni kontextoveho menu a ne v podmenu "Skripty" a je vyhrano
Název: Re: nautilus akce a skripty
Přispěvatel: GdH 17 Září 2010, 13:32:44
Kód: [Vybrat]
sudo apt-get install nautilus-actions
Systém > Předvolby > Nastavení Akcí Nautilus
Název: Re: nautilus akce a skripty
Přispěvatel: Uran 17 Září 2010, 13:59:36
Kód: [Vybrat]
sudo apt-get install nautilus-actions
Systém > Předvolby > Nastavení Akcí Nautilus

Mam jen se mi jedna o to, kdyz mam uz nejake skripty hotove kam je umistit, aby byli na vyssi urovni v kontextovem menu

Jinak v
Citace
Systém > Předvolby > Nastavení Akcí Nautilus
jsou jen dve kolonky kam se pise prikaz + jeho parametry. To mam chapat jako tak , ze tam mohu nacpat libovony skript?
Název: Re: nautilus akce a skripty
Přispěvatel: GdH 17 Září 2010, 15:32:49
Pro použití v nautilus-actions hlavně budeš muset upravit parsování parametrů, protože proměnné, které posílá Nautilus skriptům, nejsou k dispozici. Ve okénku Command > Parameteres si zapíšeš v tomto případě %M (viz. tlačítko Legend), což přidá jako parametr cesty ke všem vybraným objektům oddělené mezerou. Skript pak může vypadat třeba takto:
Kód: [Vybrat]
echo "$@" |sed  's@ /@\n/@g' | while read LINE # sed rozhodí jednotlivé cesty na samostatné řádky
   do
ln -s "$LINE" /mnt/data/books/Precist/
   done

Dále je třeba v nastavení akce v záložce Conditions zaškrtnout Apears if selection contains > Both a Apears if selection has multiple ... a záložce Akce > Display item in selection context menu

Skripty mohou být uloženy kdekoliv.