Newsgroup: it.comp.macintosh
Titolo: [Terminale] Find

Perche' il comando "find" da terminale e' *mostruosamente* piu' lento
del "Cerca..." da Finder?
Algoritmo vecchio o poco efficiente?
-- 
http://www.dorelli.com
When she's walking by the river and the railway line
She can still hear him whisper
Let's go down to the waterline

 Algoritmo vecchio o poco efficiente?
Non penso proprio... anzi imho è la stessa cosa, dipende da come usi le
opzioni da linea di comando: man find
Ciao!

 del "Cerca..." da Finder?
Considera che il Finder salta gli elementi invisibili (a meno che tu non
gli dica espressamente di cercare anche quelli). In parte dipenderà
anche da questo.
-- 
"I have a very simple life, I have my family and I have Apple and Pixar.
And I don't do much else." S. J.


|._/|_|\__/\__/\__/ | * An out of control ego will sometimes get in the
       /_/ /_/      |   way of your success.                  (Todd H.)

 anche da questo.
Considera anche le directory ?
find ha delle possibilita` in piu` rispetto a Finder, probabilmente pesano
anche quelle.
-- 
 /\            ___
/___/\__|_|\_|__|___Gian Uberto Lauri_____________________
  //--\ | | \|  |   Integralista GNUslamico e fancazzista 
\/

 Altrimenti non fai in tempo a leggere i risultati .-D
LOL 
-- 
Marie Dany Keisler

 Considera anche le directory ?
Certo.


 Altrimenti non fai in tempo a leggere i risultati .-D
Ahah, la risposta piu' sagace :-D
Si' find e' lento non solo per le directory e i file invisibili: con la
stessa ricerca, su tutto il disco, ho fatto molto prima col Cerca da
Finder che con find di bash.


 Si' find e' lento non solo per le directory e i file invisibili
No, non era questo che volevo dire: la differenza è che find cerca
sempre tutto, anche gli elementi invisibili. Il Finder invece, a meno
che non glielo dici espressamente, salta del tutto gli elementi
invisibili, quindi è chiaro che in questo caso fa molto prima, perché si
salta tutte le cartelle di sistema con tutta la miriade di roba che c'è
dentro.


 Altrimenti non fai in tempo a leggere i risultati .-D
find quellochecerco > desktop/risultati.txt
Crea un file "risultati.txt" sul desktop che puoi leggere con calma.

 del "Cerca..." da Finder?
Può dipendere da vari fattori:
1) hai il filesystem indicizzato (mela+I su una cartella o sul disco,
è tra le opzioni lì dentro): il Finder sfrutta questa indicizzazione
(se presente), il find no
2) sul Finder cerchi solo nella tua home, piuttosto che in una certa
selezione mentre con il find cerchi ovunque (questo non lo so, dipende
da che comando scrivi)
Se ti serve spesso cercare file sparsi per il disco e ti serve
cercarli da shell ti può essere utile il comando "locate" (man locate)
Attenzione che si deve costruire periodicamente il database, c'è una
entry apposta nel crontab.
Ciao,
Marco

 anche da questo.
Colgo la palla al balzo: come si fa a vedere i files invisibili da Finder?

.
Per cercarli, basta che aggiungi il criterio "Visibilità: elementi
visibili ed invisibili".


 C'č una qualche opzione da settare per ottenere un ouput umano?
Ti conviene fare direttamente cosě. Fatti un documento di testo
semplice, formato UTF-8, con dentro scritto questo:
#!/bin/sh
man -t $1 > /tmp/$
1.ps
open /tmp/$
1.ps
e salvalo con nome superman in una delle directory in cui stanno i
comandi della shell. Rendilo eseguibile e poi ti basterŕ digitare
superman nome_comando perché il man venga aperto e convertito in PDF da
Anteprima, cosě potrai anche sfruttare la comoda e potente funzione di
ricerca del programma.


 dentro.
Faremo una prova cronometro, con il Finder impostato a cercare anche gli
elementi invisibili :)


 copincollo qui:
Boh, mi sembra che riuscire a formattare decentemente le pagine di man
sia sempre un problema, ho letto post analoghi al tuo sui gruppi della
gerarchia linux.
Ho provato la soluzione proposta da FabriXio e mi pare che sfrutti alla
grande la capacità di OS X di generare PDF :-)))

 elementi invisibili :)
Mela-F Name ends with .c = 19 secondi, 1'103 items
find / -name "*.c" -print = 92 secondi, 1'105 items
Indicizzazione del Finder spenta. Find da' una manciata di "access
denied", e non sono stato a vedere quali sono i 2 file che Mela-F non
trova .-)


 Vederli o cercarli? Nel primo caso, apri il terminale e digita:
[cut]
Thanks
 

 .-)


 usa l'opzione "-t" con man
Occhio che cosě ti esce fuori un post script.


 se la spegni non aggiorna l'indice, ma l'indice c'e` comunque.
Ma l'indice non serve solo per la ricerca nel contenuto?


 Ho come l'idea che non serva *solo* per quello...
Mi sa che hai ragione: ho provato a fare un confronto e mentre quando si
lancia il find si sente l'hard disk che macina di brutto, con la ricerca
del Finder non si sente quasi nulla e nel caso di una ricerca già fatta
i risultati sono quasi istantanei. Tra l'altro, un'altra differenza che
ho notato è che se col find si fa una ricerca a partire da / (o anche
dall'alias del volume d'avvio sotto /Volumes) la ricerca viene estesa
anche ad altri hard disk/partizioni (interni o esterni), mentre il
Finder si limita al volume d'avvio.





 del "Cerca..." da Finder?
L'unica possibilità residua che mi viene in mente, dopo questa
discussione, è che il "find" del Finder sfrutti a modo il filesystem
HFS, che se non sbaglio ha sempre avuto come caratteristica una
organizzazione del filesystem tesa a rendere più veloci le ricerche,
mentre il comando "find" che si usa da terminale sia quello classico
degli OS Unix-like, che non penso sia stato creato o ottimizzato per
sfruttare l'HFS.

 wrote:
[ubersnip]
Se c'hai Xcode e devi solo consultare la pagina (non salvarla), fai Help
-> Open man page..., che meglio e' (ti fa anche gli hyperlink comodi
comodi alle manpage menzionate in quella che apri).
 - ∞ 

 se la spegni non aggiorna l'indice, ma l'indice c'e` comunque.
Macintosh HD, Info, Status: Not indexed.
E' facile comunque che il Finder un indice (dei file, non dei contenuti)
se lo tenga comunque. E' anche possibile che il Finder sia fatto per
cercare su un volume HFS e il terminale no. Bisognerebbe provare su un
volume formattato come disco unix.


 se lo tenga comunque.
Si, il catalog B-tree, dal 1985.
In effetti vedere il tempo che un Macintosh ci mette ad eseguire una
ricerca ha sempre lasciato gli utenti di altri OS a bocca aperta.

 ricerca ha sempre lasciato gli utenti di altri OS a bocca aperta.
Anche gli utenti di MacOS .-)
Se penso alla quantita' di file che si accumulano su un disco da una
30ina di giga in 3 anni e al tempo che ci metto a trovarne uno sepolto
li' in mezzo, boccheggio anch'io 8-o


 i risultati sono quasi istantanei.
Infatti: l'equivalente di "Mela + F" da terminale non e' "find" ma
"locate", per cui ti devi prima indicizzare il disco (con "sudo
/usr/libexec/locate.updatedb").
Daniele
-- 
"I'm just a Soldier of Fortune,
 Must be the Gypsy in me!" (Coverdale)
STARGAZER: 
www.stargazer.it
 - Le stelle della scena Hard & Heavy!

 "locate"
Non so se siano proprio equivalenti. Con locate un file appena aggiunto
non lo trovi perché l'indice non è stato ancora aggiornato, col Finder
sì. Ma forse perché quando aggiungi un file, l'indice del Finder viene
subito aggiornato...?


 trova .-)
Non ne *dubitavo* !!!!!


 sfruttare l'HFS.
Appoggio questa ipotesi fra tutte...
Cmq e' una bella botta per i terminalisti ;)


 Anche gli utenti di MacOS .-)
Infatti anch'io mi stupisco ancora... soprattutto pensando che con OS X
il numero dei file e' aumentato di brutto rispetto all'OS classico.


 Una cosa che si sono dimenticati di togliere .-D
Lo sapevo che dovevi dire qualche cattiveria :-D

 Cmq e' una bella botta per i terminalisti ;)
Mah, il comando "find" lo uso per cercare quelle cosine antipatiche che
si usano solo da terminale e che, non ho capito per quale ragione, col
Finder non riesco a trovare.
Il comando
$ sudo find / -name httpd*
mi restituisce 19 risultati, una ricerca via Finder (search everywhere)
me ne trova 3. Sembra che il Finder non vada a cercare in determinate
cartelle (private, System, usr).
Quando attacco l'hard disc FireWire e cerco un file sepolto nei suoi
settori vado di Finder, non preoccuparti ;-)

 per non parlare del contenuto delle directory .app :)
idem


 cartelle (private, System, usr).
Aggiungi il criterio visibilità, mettendo visibili e invisibili.


 per non parlare del contenuto delle directory .app :)
Idem: visibili e invisibili e trovi tutto.


 Aggiungi il criterio visibilità, mettendo visibili e invisibili.
TY, non ci sarei arrivato.
Perché li considera invisibili?

 Perché li considera invisibili?
Perché lo sono... ;-) Le directory di sistema /bin, /dev, /etc... non
sono visibili dal Finder.


 sono visibili dal Finder.
Effettivamente, se una directory è invisibile il Finder non ha motivo di
andare a cercare i file in quella cartella.
#^_____^#  & TY

 il numero dei file e' aumentato di brutto rispetto all'OS classico.
Se i file sono in posti che Mela-F salta e` come se non ci fossero pero`,
anche se sono tanti.
-- 
 /\            ___
/___/\__|_|\_|__|___Gian Uberto Lauri_____________________
  //--\ | | \|  |   Integralista GNUslamico e fancazzista 
\/

 Perché li considera invisibili?
Perche' per l'utente medio lo sono ;)


 anche se sono tanti.
Guarda che e' implicito utilizzare l'opzione "cerca file visibili e
invisibili" per questo raffronto...


 sono visibili dal Finder.
Ho cercato or ora "etc" (come cartella) e l'ho trovata subito (col
Finder): come lo spieghiamo?
[risultato: "/private/etc"]


 invisibili" per questo raffronto...
La visibilità non centra nulla. Per evitare rallentamenti, Apple stessa
disabilita per default la ricerca nella cartella System, che va inclusa
manualmente: 
http://docs.info.apple.com/article.html?artnum=25558
Per includere anche le cartelle /usr e /private (quindi anche /etc e 
/var) bisogna recarcisi dal menù Vai -> Vai alla cartella..., collocare
le icone delle cartelle nella barra laterale del Finder e aggiungerle
dopo aver scelto "Posti Specifici" dal dialog di Cerca.
-- 
Guido


E non ho fatto nulla di quanto dici ;)


 subito aggiornato...?
Penso sia cosi', in effetti.


 cartelle (private, System, usr).
Qui ne trova 22 in ambedue i casi, ma sono *diversi* o_O
Cioe' find trova cose che il Finder non trova e viceversa.


 Penso sia cosi', in effetti.
probably, yep


 Cioe' find trova cose che il Finder non trova e viceversa.
Il mistero s'infittisce...


 E non ho fatto nulla di quanto dici ;)
Idem, non mi sono mai nemmeno posto il problema. Cerco httpd.conf ed
eccolo li', nella sua bella cartella-forziere. Lo apro, lo smanetto e
poi mi tocca usare il terminale per rimetterlo a posto. Ridicolo.
Ma forse qui bisogna specificare che usiamo Mela-F, non il Search nella
finestra del Finder.


 finestra del Finder.
In realtà io mi riferivo proprio al Mela-F: aggiungere le cartelle
/private e /usr nella barra laterale del Finder è l'unico modo in
Panther per potervi accedere comodamente dai box di dialogo di
apertura/salvataggio dei file.
Se si aggiunge il criterio "elementi visibili ed invisibili", in
effetti, l'httpd.conf e tutti gli altri file in /etc vengono reperiti
da Cerca. Ma se si aggiunge a attiva /private tra i "Posti specifici",
i file in /etc vengono trovati anche limitandosi al solo criterio del
Nome.
-- 
Guido

 Nome.
Ah. Beh, non vale la fatica, ho "visible and invisible items" acceso di
default .-)


 Finder): come lo spieghiamo?
Forse col fatto che hai lasciato tra i criteri di cercare sia gli
elementi visibili che quelli invisibili; io l'ho tolto e non me l'ha
trovata.

 finestra del Finder.
Infatti, ecco spiegato l'equivoco...


 trovata.
Ok, il succo e' che se col mela + F si vuole trovare qualcosa, ci si
riesce.


 E non ho fatto nulla di quanto dici ;)
Però ha ragione lui: la cartella /System non viene cercata anche se
metti visibili e invisibili.


 metti visibili e invisibili.
neanche se specifichi "ovunque"?
-- 
.zen info

 neanche se specifichi "ovunque"?
Non ho provato, comunque da quello che c'è scritto pare che devi per
forza aggiungerlo ai posti specifici.


 forza aggiungerlo ai posti specifici.
chiedo perchè il mela+f lo tengo fisso su "Ovunque"+"Invisible and
Visible" e mi pare cerchi sempre dappertutto..
-- 
.zen lo usa solo per buttare roba

 mi pare cerchi sempre dappertutto..
Prova a cercare SyncServices, una cartella che sta dentro
/System/Library.


 /System/Library.
SyncService (senza la s finale), la trova in entrambe le Library.
-- 
.zen mica male

 la trova in entrambe le Library.
Quello che dici tu sta dentro:
/Library/Application Support
~/Library/Application Support
non dentro /System/Library.


 No, no, con la s.
hai ragione, non la trova :|
devi specificarlo se vuoi che la trovi, con "ovunque" non funzia...
-- 
.zen ha imparato qualcosa! (cit.)

 /System/Library.
Non la trova!


 Cioe' find trova cose che il Finder non trova e viceversa.
Ho sbagliato io:
cercando "httpd*" non cercavo tutti i file che contengono "http" ma solo
quelli che cominciano cosě. Viceversa, la ricerca dal finder č impostata
di default con "contiene".
La ricerca con parametri uguali sarebbe stata
$ sudo find / -name *httpd*
Coincidenza ha voluto che esistesse 1 file "Apache::httpd_conf.3pm" non
trovato dalla mia ricerca farlocca dal terminale ed 1 file
"
httpd_conf.pm
" che invece č nella cartella System e non viene visto dal
finder con una ricerca "Everywhere": il numero di risultati era lo
stesso, ma i risultati non erano tutti uguali.
Sorry           Giovanni

 ma infatti non capisco il perche' di questa lunga discussione...
Raffronti sulla rapidita' delle ricerche...
