Gyorstipp: nautilus-actions ékezetes és szóközös útvonalaknál

Ha olyan hibával találkozunk, hogy a nautilus-actionsben meghívott program az ékezeteket és/vagy szóközöket tartalmazó útvonalakat csak részben követi (gprename) vagy egyáltalán nem (pyrenamer), akkor az azért van, mert a nautilus-actions URL kódolva adja meg a paraméterekben (%d, %f, stb.) szereplő útvonalakat:

URL kódolva

Mivel ez egy szándékos jellemző, és nem hiba, ezért a szkript készítőkre marad a feladat, hogy az URL kódolt útvonalat először visszakódolják, majd úgy adják át a programnak. Fekete öves shell mesterek biztosan tudnak szebb és jobb megoldást, rengeteg példa fellelhető a neten is. Ha megvan a legszebb egysoros, akkor már csak be kell faragni a nautilus-actions paramétereket:

visszakódolva

A gprename és pyrenamer (tömeges átnevezők) esetén például így is kinézhet egy működő parancs:

GPRename

nautilus-actions gprename

Path: bash
Parameters: %O -c "gprename \"$(x=%d ; echo -e ${x//%%/\\\x} )\" "
Importálható nautilus-action fájl: atnevezes-gprename.xml

pyRenamer

nautilus-actions pyrenamer

Path: bash
Parameters: %O -c "pyrenamer -r \"$(x=%d ; echo -e ${x//%%/\\\x} )\" "
Importálható nautilus-action fájl: atnevezes-pyrenamer.xml

Gyorstalpalóként annyit, hogy nem magát a végső programot kell elindítanunk, hanem egy shellt (pl. bash), ami majd értelmezi az átalakítást, és ebbe kell beleágyazni a -c (command=parancs) paraméterrel a végső programot, illetve az átalakított paraméterét. Az %O paraméter a nautilus-actionnek mondja meg, hogy a többszörös kijelölésnél is csak egyszer hajtsa végre a programot, a %d paraméter az első kijelölt fájl mappája, a %% szintén a nautilus-actionnek kell, mert így van levédve a % jel. A többi átlagos shell szkript dolog. Hasznos még tudni, hogy a zenity programmal egyszerűen tudunk különböző GTK ablakokat hívni, talán így a legkönnyebb a készülő nautilus-action szkripteket ellenőrizni.