{"id":493,"date":"2012-02-27T21:27:26","date_gmt":"2012-02-27T21:27:26","guid":{"rendered":"http:\/\/www.budus.it\/Blog\/?p=493"},"modified":"2017-06-18T07:37:59","modified_gmt":"2017-06-18T07:37:59","slug":"gnome-nautilus-aggiungere-comandi-personalizzati-al-menu-contestuale","status":"publish","type":"post","link":"https:\/\/www.budus.it\/Blog\/gnome-nautilus-aggiungere-comandi-personalizzati-al-menu-contestuale\/","title":{"rendered":"Gnome Nautilus: Aggiungere comandi personalizzati al menu contestuale"},"content":{"rendered":"<p>Desideravo fare in modo che, cliccando con il tasto destro del mouse sopra un file &#8211; con il file manager di Gnome &#8220;Nautilus&#8221; &#8211; mi venisse offerta la possibilit\u00e0 di crearne il codice <em>md5sum<\/em> (quello utilizzato per verificare l&#8217;originalit\u00e0 di un file), magari salvandolo in un apposito file, con estensione .md5 e nome uguale a quello di origine.<\/p>\n<p><!--more--><\/p>\n<p>Cercando ho scoperto che esiste la possibilit\u00e0 di crearsi degli script personalizzati, che vengono automaticamente aggiunti al menu contestuale, e che vengono invocati in modo opportuno, ovvero: ricevendo la lista dei file selezionati.<\/p>\n<p>Mi sono <em>illuminato<\/em> e ho prodotto subito quello che desideravo; questo il file script:<\/p>\n<pre>#!\/bin\/bash\r\n\r\n# $Revision: 1.6 $\r\n# $Date: 2012\/05\/03 06:16:15 $\r\n# By UDA'Software 2012\r\n\r\nORIGINAL_IFS=$IFS\r\nIFS=$'\\n'\r\nmd5sum_result=$(\r\n\u00a0\u00a0\u00a0 for file in ${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS}; do\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 filename=\"$(basename ${file})\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 md5sum=$(md5sum -b \"${file}\" | awk '{print $1}')\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 printf 'FILE %s = %s\\n' \"${filename}\" \"${md5sum}\" &gt; \/tmp\/md5sum.tmp\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if [ -f \"${file}.md5\" ]; then\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 current_md5sum=$(cat \/tmp\/md5sum.tmp)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 previous_md5sum=$(cat \"${file}.md5\")\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if [ \"${current_md5sum}\" == \"${previous_md5sum}\" ]; then\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 zenity --info --title md5sum --text '\\n'\"${filename}\"' ==&gt;&gt; OK: IL CODICE COMBACIA.\\n'\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 else\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 zenity --info --title md5sum --text '\\n'\"${filename}\"' ==&gt;&gt; ERRORE: IL CODICE NON COMBACIA !\\n'\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 fi\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 else\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 printf 'FILE %s = %s\\n' \"${filename}\" \"${md5sum}\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 cp -f \/tmp\/md5sum.tmp \"${file}.md5\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 fi\r\n\u00a0\u00a0\u00a0 done\r\n)\r\n\r\n[ \"${md5sum_result}\" != \"\" ] &amp;&amp; \\\r\n\u00a0\u00a0\u00a0 zenity --info --title md5sum --text \"\\n${md5sum_result}\\n\"\r\n\r\nIFS=$ORIGINAL_IFS\r\n\r\nexit 0<\/pre>\n<p>mi \u00e8 bastato salvarlo nella cartella &#8220;$HOME\/.gnome2\/nautilus-scripts&#8221; e renderlo eseguibile.<\/p>\n<p>Notare che, nel mio caso specifico, ho usato <strong>Zenity<\/strong> per creare un&#8217;interfaccia grafica con la quale comunicare il risultato.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Desideravo fare in modo che, cliccando con il tasto destro del mouse sopra un file &#8211; con il file manager di Gnome &#8220;Nautilus&#8221; &#8211; mi venisse offerta la possibilit\u00e0 di crearne il codice md5sum (quello utilizzato per verificare l&#8217;originalit\u00e0 di un file), magari salvandolo in un apposito file, con estensione .md5 e nome uguale a &hellip; <a href=\"https:\/\/www.budus.it\/Blog\/gnome-nautilus-aggiungere-comandi-personalizzati-al-menu-contestuale\/\" class=\"more-link\">Leggi tutto<span class=\"screen-reader-text\"> &#8220;Gnome Nautilus: Aggiungere comandi personalizzati al menu contestuale&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,6],"tags":[97,161,160,99],"class_list":["post-493","post","type-post","status-publish","format-standard","hentry","category-operating-system","category-software","tag-gnome","tag-md5sum","tag-nautilus","tag-script"],"_links":{"self":[{"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/posts\/493","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/comments?post=493"}],"version-history":[{"count":6,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/posts\/493\/revisions"}],"predecessor-version":[{"id":882,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/posts\/493\/revisions\/882"}],"wp:attachment":[{"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/media?parent=493"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/categories?post=493"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.budus.it\/Blog\/wp-json\/wp\/v2\/tags?post=493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}