SITO1 -- SITO2 -- Forum1 -- CercaGlobale -- Informativa su Cookie e Privacy


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Salvare le annotazioni nelle proprietà dei file in un testo
#1
Il file manager di Ubuntu permette di scrivere delle note nelle proprietà dei file, come pure di aggiungere dei simboli che aiutano visivamente a distinguerli. 

Le note possono risultare utili da usare, c'è da sapere però che se ad un file si applica una annotazione, se si sposta o copia il file in un disco esterno o in un'altra partizione le note vengono perse.

Ad esempio ho messo delle annotazioni su alcuni ODS che faccio sincronizzare tramite Dropbox fra due Ubuntu Mate, ma le note non si salvavano. Ho fatto qualche ricerca e ho  trovato che succede  perché le annotazioni non fanno parte del file ma sono dei metadati che vengono conservati nella cartella nascosta ~ / .local / share / gvfs-metadata.


Le annotazioni si possono salvare  in un file di testo tramite dei comandi su terminale, prima che i file vengano spostati.

Aprire il terminale e dare il comando


Codice:
gio info -a metadata::annotation [file] | sed s/' metadata::annotation: '/''/g > [output].txt


Al posto di [file]  mettere  l'elenco dei file o cartelle , si possono anche selezionare e trascinare, e al posto di [output] il nome  che vogliamo.

Il risultato sarà ad esempio:

uri: file:///home/.../Scrivania/resoconto.pdf
attributi:
farlo leggere anche a Ciccio
uri: file:///home/.../Scrivania/fattura.xlsm
attributi:
ricordarsi  di controllare  gli articoli
uri: file:///home/.../Scrivania/Compleanno.png
attributi:
farla stampare
uri: file:///home/.../Scrivania/Manuale_HL_HUB.pdf
attributi:
istruzioni del nuovo modem
uri: file:///home/.../Immagini/ foto.png
attributi:
data 30 luglio 19
compleanno di Franco

...
e così via.



Invece, quando eseguito da terminale, lo script seguente ripreso  e modificato da qui, salva le note in documenti di testo separati, ognuno con il nome del file.
Così quando visualizziamo in ordine alfabetico, ogni nota è proprio vicino al suo file. Però non funziona sulle cartelle (non so perché).
Il difetto di questo secondo script è che dell'annotazione viene salvata solo la prima riga, invece il su detto comando da terminale non ha questo problema e salva tutta l'annotazione.

Codice:
#!/bin/bash
IFS=$'\n' # don't use <space>,<tab> to split words as part of expansion
   
process_dir() {
 local -a subdirs=()
 echo "Scanning directory: $1"

 # Scan the directory, processing files and collecting subdirs
 for file in "$1"/*; do
 if [[ -f "$file" ]]; then
 echo "Processing file: $file"
 # actually deal with the file here...

 #gio info -a metadata::annotation $file | grep annotation | sed s/' metadata::annotation: '/''/g > $file.note
 note=$(gio info -a metadata::annotation "$file" | grep annotation | sed s/' metadata::annotation: '/''/g)
 #len=`echo ${#note}`
 #echo $len
 if [ -z "$note" ]
 then
 echo "No note for file $file"
 else
 echo "Found a note for file \"$file\", saying: \"$note\""
 echo "$note" > $file.text

 fi     # $String is null.

 elif [[ -d "$file" ]]; then
 subdirs+=("$file")
 # If you don't care about processing all files before subfolders, just do:
 # process_dir "$file"
 fi
 done

 # Now go through the subdirs
 for d in "${subdirs[@]}"; do
 process_dir "$d"
 done
}

clear
if [[ -z "$1" ]]; then
 read -p "Inserisci la directory da scannerizzare" dir
else
 dir="$1"
fi
process_dir "$dir"


l'unica modifica che ho fatto rispetto all'originale è di sostituire gvfs-info  (comando deprecato) con gio info -a metadata::annotation ed inserire
IFS=$'\n' all'inizio altrimenti non funziona con i file contenenti uno spazio nel nome. Se leggete i commenti sotto lo script che ho trovato, viene proposta una modifica per far salvare anche le righe successive alla prima, ma a me non ha funzionato.
N.B testato su Ubuntu Mate 18.04, qiundi dovrebbe funzionare anche su Nautilus. Da verificare con gli altri file manager, quindi per favore se  avete un riscontro positivo segnalatelo qui sotto.
Cita messaggio
Grazie da: Blackstar


Vai al forum:


Utenti che stanno guardando questa discussione: