Upload
emmanuele-somma
View
915
Download
0
Embed Size (px)
DESCRIPTION
Gestione dei File con EmacsSlides workshop c/o Area Ricerca Banca d'Italia27 Febbraio 2009
Citation preview
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Gestione dei File con Emacs
Emmanuele [email protected]
Supporto Informatico per l’Area RicercheBanca d’Italia
27 Febbraio 2009
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 1/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Piano della presentazione
1 Operazioni fondamentali
2 Operazioni sui file
3 Ricerche
4 Image-Dired
5 Dired-X
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 2/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Introduzione
La gestione dei file e una delle operazioni piu comuni sulcomputer. E una delle caratteristiche distintive delle differentiinterfacce utente testuali o grafiche. Che, detto in altre parole,significa: e diversa da sistema a sitema, da interfaccia adinterfaccia, da macchina a macchina.Ma... noi conosciamo la soluzione
EMACS
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 3/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Caratteristiche
Il modo Dired Directory Editor di Emacs e un ottimofile-manager per:
Navigazione nelle directory Finestre unica per ogni directory omolteplici directory su un singolo buffer,informazioni visualizzate a scelta dell’utente
Gestione dei file Copiare, cancellare, rinominare/muovere,collegamenti (alias), chmod, chgrp, chown,timestamp, stampare, comprimere, caricare,byte-compilare, visitare, vedere, marcatureesoteriche, ricercare, comparare
Gestione dei file particolari auto-salvataggi, backup,file-spazzatura
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 4/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
...ed anche
Gestione dei processi Esecuzione di comandi di shell
Gestione dei nomi Trasformazioni in maiuscolo, minuscolo,generiche in base ai REGEXP
Gestione delle ricerche sul nome del file, sul contenuto dei file,generiche, sul database dei file
Modifica diretta della directory
Gestione delle immagini vista delle miniature, gestione dei tag,manipolazione dei jpg
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 5/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Storia di Dired
Dired e stato inventato nel 1974 allo Stanford ArtificialIntelligence Laboratory (SAIL) come programma stand-alone daStan Kugell.[1]. Fu in seguito incorporato in Emacs ed ediventato la base per tutti i moderni sistemi di visualizzazionedelle directory dei file basati su finestre [2] (da Wikipedia)
1 Kugell, Stanley G. (1974). SAILDART/2006-06. StanfordArtificial Intelligence Lab DART (Dump and RestoreTechnique) Archive. Retrieved on 2007-11-16.
2 SAILDART/2006-06. Stanford Artificial Intelligence LabDART Archive. Retrieved on 2007-11-16.
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 6/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Operazioni fondamentali
1 Operazioni fondamentali
2 Operazioni sui file
3 Ricerche
4 Image-Dired
5 Dired-X
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 7/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Entrare nel modo Dired
C-x d diredC-x C-f find-fileC-x 4 d dired-other-windowC-x 5 d dired-other-frameC-u C-x C-d
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 8/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Muoversi in Dired
C-n, n, <SPC> next-lineC-p, p prev-linei, C-u i, 0 i dired-maybe-insert-subdirl dired-do-redisplay$ dired-hide-subdirM-$, ESC $ dired-hide-all+ dired-create-directory
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 9/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Muoversi in Dired
C-x [ next-pageC-x ] prev-pageC-M-n dired-next-subdirC-M-p dired-prev-subdirC-M-u dired-tree-upC-M-d dired-tree-down< dired-prev-dirline> dired-next-dirlineC-u k dired-do-kill-lines∧ dired-up-directory
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 10/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Aggiornare il buffer Dired
g revert-bufferl dired-do-redisplayk dired-do-kill-liness dired-sort-toggle-or-editC-u s SWITCHES dired-listing-switchesw dired-copy-filename-as-kill
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 11/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Visitare i file
f, RET,e dired-find-fileVisita il file
o dired-find-file-other-windowVisita il file in un’altra finestra
C-o dired-display-fileVisualizza il file in un’altra finestra
v dired-view-fileVisualizza il file
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 12/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Cancellazione dei file
d dired-flag-file-deletionMarca per la cancellazione
u command dired-unmarkElimina la marcatura
DEL dired-unmark-backwardcome u ma prima si sposta alla riga precedente
x dired-do-flagged-deleteEsegue l’operazionedired-recursive-deletes(t/nil) attiva la cancellazione ricorsiva
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 13/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Marcature generiche e flags
* m dired-markMarca con *
N * m dired-markMarca N file con *
* * dired-mark-executablesMarca i file eseguibili
* @ dired-mark-symlinksMarca i link simbolici
* / dired-mark-directoriesMarca le directory
* . dired-mark-extensionMarca i file con determinate estensioni
* O dired-mark-omittedMarca i file omessi
* s dired-mark-subdir-filesMarca tutto (tranne . e ..)
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 14/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Marcature generiche e flags
DEL, * DEL dired-unmark-backwardRimuove una marca
* !, U dired-unmark-all-marksRimuove tutte le marche
* ? CHAR, M-DEL dired-unmark-all-filesRimuove le marche di CHAR1 * ? D
* C-n dired-next-marked-filePassa al prossimo file marcato
* C-p dired-prev-marked-filePassa al precedente file marcato
t, * t dired-toggle-marksScambia i file marcati
* c OLD NEW dired-change-marksScambia le marche* c D t * c SPC D * c t SPC
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 15/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Marcature multiple
# dired-flag-auto-save-filesMarca gli auto-save
∼ dired-flag-backup-filesMarca i file di backup
& dired-flag-garbage-filesMarca i file-spazzaturadired-garbage-files-regexpDefinisce i nomi dei file-spazzatura
. dired-clean-directoryMarca i backup numerici
% d REGEXP dired-flag-files-regexpMarca i file secondo il REGEXP
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 16/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Marcature multiple
% m dired-mark-files-regexp* % dired-mark-files-regexp
Marca i file definiti dal REGEXP% d dired-flag-files-regexp
Marca per la cancellazione% g dired-mark-files-containing-regexp
Marca i file secondo il contenuto
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 17/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Espressioni Regolari
Le espressioni regolari (regular expressions) sono descrizioniastratte di stringhe di caratteri.Ad esempio, la espressione regolare
\([ao]+\)\1
descrive una classe infinita di stringhe quali:
aa, aoao, oooo, aaoaao, oaoaoaaooaoaoaao, ...
ovvero una qualsiasi stringa contenente a o o, immediatamenteseguita da una ripetizione di se stessa.
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 18/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Sintassi delle espressioni regolari
Semplice match helloCaratteri speciali $ ^ . ∗ + ? [ ] \Insieme di caratteri [...] [^...]Ripetizioni \{N\}, \{N,M\}Raggruppamenti \( \)Riferimento \1 \2 \3 ...Alternative \|Gruppi timidi \(?: ... \)Stringa vuota \‘ \’ \= \b \B \< \>Costituenti \w \W \sC \SC C=... \cC \CC
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 19/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Esercizi sulle espressioni regolari
Trovare in un testo “un” o “uno” o “una”un\(\|o\|a\)Trovare in un testo le parole “Luna” o “luna”.\(L\|l\)unaTrovare parole con tre consonanti di fila p.es. “scrivere”,“aspro” [bcdfghjklmnpqrstvwxyz]{3}Trovare parole con tre consonanti all’inizio di parola.\b[^aeiou]{3}Cercare parole con vocali identiche ripetute (p.es. “aree”,“portaauto”)\([aeiou]\)\1Trovare parole palindrome di lunghezza 4 o 5 (p.es.“abba”, “radar”) \b\(.\)\(.\).?\2\1\bTrovare parole ripetute (p.es. “alto alto”)\(\b\w+\b\)\s\1
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 20/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Operazioni sui file
1 Operazioni fondamentali
2 Operazioni sui file
3 Ricerche
4 Image-Dired
5 Dired-X
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 21/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Come specificare i file
1 Con un argomento prefisso
2 Tutti i file marcati con *
3 sul file corrente
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 22/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Come specificare la destinazione
Nelle operazioni sui file la directory di destinazione e la stessadi quella di partenzaA meno che non venga definita la variabile:
M-x set-variable dired-dwin-target t
In questo modo se esistono due dired la directory didestinazione e quella dell’altro dired.In questo modo e possibile realizzare un file-commander
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 23/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Operazioni sui file/directory
C NEW dired-do-copy cpdired-copy-preserve-time cp -pdired-recursive-copies cp -r
D dired-do-delete rmR NEW dired-do-rename mvH NEW dired-do-hardlink lnS NEW dired-do-symlink ln -sM SPEC dired-do-chmod chmodG GRP dired-do-chgrp chgrpO OWN dired-do-chown chown
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 24/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Operazioni sui file/directory
T STAMP dired-do-touch touchP CMD dired-do-print lpr
lpr-commandlpr-switches
Z dired-do-compress gzipL dired-do-loadB dired-do-byte-compileA REGEXP dired-do-searchQ REGEXP TO
query-replace-regrexp
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 25/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Comandi di shell
!, X(dired-do-shell-command)! wc -l *! wc -l! cp * /tmp! grep pippo *! for file in * ; do uuencode \"$file" "$file" >"$file".uu; done
g
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 26/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Trasformazione dei nomi
% u dired-upcase% l dired-downcase% R FROM TO dired-do-rename-regexp% C FROM TO dired-do-copy-regexp% H FROM TO dired-do-hardlink-regexp% S FROM TO dired-do-symlink-regexp
\&, \1. . .\nEsempi:
% R ^.*$\ <RET> x-\& <RET>% R ^x-\(.*\)$ <RET> \1 <RET>0 % R% m FROM <RET> % R <RET> TO <RET>
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 27/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Comparazione dei file
= dired-diffM-= dired-backup-diff
dired-compare-directories(> mtime1 mtime2)
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 28/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Ricerche
1 Operazioni fondamentali
2 Operazioni sui file
3 Ricerche
4 Image-Dired
5 Dired-X
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 29/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Ricerche dentro Dired
M-x find-name-dired DIR <RET> WILDCARD <RET>~/ <RET> *.txt <RET>
M-x find-grep-dired DIR <RET> REGEXP <RET>~/ <RET> .*corn <RET>
M-x grep-find DIR <RET> REGEXP <RET>~/ <RET> .*corn <RET>
% g REGEXP~/ <RET> .*corn <RET>
M-x find-dired?!?
M-x set-variable find-ls-option -ld?!?
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 30/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Ricerche dentro Dired con locate
M-x locate STRING <RET>txt
M-x locate-with-filter STRING <RET> FILTER <RET>txt <RET> exedre <RET>
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 31/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Editing del buffer Dired
[Immediate]→[File Names]M-x wdired-change-to-wdired-mode
C-c C-c (wdired-finish-edit)M-x set-variable
wdired-allow-to-change-permission t
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 32/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Image-Dired
1 Operazioni fondamentali
2 Operazioni sui file
3 Ricerche
4 Image-Dired
5 Dired-X
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 33/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Image-Dired
C-t d (image-dired-display-thumbs)C-t t (image-dired-tag-files)<RET> (image-dired-flag-thumb-original-file)<SPC> (image-dired-display-next-thumbnail-original)<DEL> (image-dired-display-previous-thumbnail-original)C-<RET> (image-dired-thumbnail-display-external)
M-x set-variable image-dired-external-viewerd (image-dired-flag-thumb-original-file)C-d (image-dired-delete-char)
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 34/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Image-Dired: Tags
M-x set-variable image-dired-db-file~/.emacs.d/image-dired/.image-dired_dbC-t t (image-dired-tag-files)C-t f (image-dired-mark-tagged-files)C-t d (image-dired-display-thumbs)C-t c (image-dired-dired-comment-files)t t (image-dired-tag-thumbnail)t r (image-dired-tag-thumbnail-remove)
Manipolazioni JPG:L (image-dired-rotate-original-left)R (image-dired-rotate-original-right)
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 35/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Dired-X
1 Operazioni fondamentali
2 Operazioni sui file
3 Ricerche
4 Image-Dired
5 Dired-X
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 36/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Dired-X: Omissione dei file
Agisce sui file e non sulle directory
Prendere o lasciare, o c’e o non c’e
Puo essere attivata automaticamente
I file marcati NON possono essere omessi
M-o, dired-omit-mode* O, dired-mark-omittedM-x set-variable dired-omit-mode nil/1
Local Variables:dired-omit-mode: tEnd:
dired-omit-here-alwaysdired-omit-files: "^#\\|\\.$"dired-omit-localp, no-dir, nil, tdired-omit-marker-char, (C-o)
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 37/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Dired-X: Variabili locali per le directory Dired
dired-local-variables-file (default: .dired )Local Variables:dired-actual-switches: "-lat"dired-omit-mode: tEnd:
dired-enable-local-variables (t)
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 38/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Dired-X: Shell
(setq dired-guess-shell-alist-user(list(list "\\.foo$" "FOO-COMMAND");; fixed rule;; possibly more rules...(list "\\.bar$";; rule with condition test
’(if CONDITION"BAR-COMMAND-1"
"BAR-COMMAND-2"))))
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 39/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Dired-X: Dired Virtuale
(setq auto-mode-alist (cons ’("[^/]\\.dired$" .dired-virtual-mode)auto-mode-alist))
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 40/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Dired-X:
F, dired-do-find-marked-filesdired-mark-extensiondired-flag-extension
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 41/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Dired-X: M-( dired-mark-sexp
inode, s, mode, nlink, uid, gid, size, time,name, sym
Es:(equal 0 size)(not (file-exists-p (concat name "c")))
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 42/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-X
Dired-X: Dired Jump
C-x C-j (dired-jump)C-x 4 C-j (dired-jump-other-window)
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 43/44
WEDI 2009
E. Somma
Operazionifondamentali
Operazioni suifile
Ricerche
Image-Dired
Dired-XGrazie dell’attenzione
E. Somma (SIA-BdI) WEDI 2009 27/02/2009 44/44