Loading
Home » Computer » Linux » Ricerca di file.
Ricerca di file. [messaggio #36535] |
sab, 12 marzo 2011 14:07 |
stern Messaggi: 7 Registrato: febbraio 2011 |
Junior Member |
|
|
Ciao,
desidero sapere se esiste un comando da terminale oppure un programma
che mi permetta di vedere se ho un file x , di cui non conosco
preventivamente il nome , che sia stato salvato , sempre con lo stesso
nome , in directory diverse.
Grazie.
|
|
| |
Re: Ricerca di file. [messaggio #36541 è una risposta a message #36538] |
sab, 12 marzo 2011 15:12 |
RedWiz Messaggi: 147 Registrato: novembre 2010 |
Senior Member |
|
|
Il Sat, 12 Mar 2011 13:39:23 +0000, Lorenzo Mainardi ha scritto:
> Il Sat, 12 Mar 2011 14:07:47 +0100, stern scrisse:
>
>> Ciao,
>> desidero sapere se esiste un comando da terminale oppure un programma
>> che mi permetta di vedere se ho un file x , di cui non conosco
>> preventivamente il nome , che sia stato salvato , sempre con lo stesso
>> nome , in directory diverse.
>> Grazie.
>
> man find
non vedo come possa risolvere il problema con il solo find.
prima deve trovare i file doppioni nel file system, e diciamo che lo puo'
fare con
find . -exec basename {} \;|sort > file1
confrontando (attraverso un comm) con l'output di
find . -exec basename {} \;|sort|uniq > file2
quindi
comm -3 file1 file2 |uniq > file3
adesso file3 ha i file che hanno doppioni nel FS
a questo punto tali files vanno cercati
quindi ciclare su file3 e fare un find . -name "$rigadifile3"
dopo ovviamente cancellare file1,file2 e file3
questa è la soluzione che mi è venuta di getto, utilizzando files di
appoggio (che non sarebbe male magari crearli in /tmp con mktemp).
sicuramente si puo' migliorare l'algoritmo, ma insomma, siamo ben lontani
da risolverlo con un man find!
o c'è qualche opzione di find che risolve anche questo problema?
|
|
|
Re: Ricerca di file. [messaggio #36542 è una risposta a message #36541] |
sab, 12 marzo 2011 15:31 |
RedWiz Messaggi: 147 Registrato: novembre 2010 |
Senior Member |
|
|
Il Sat, 12 Mar 2011 14:12:14 +0000, RedWiz ha scritto:
> Il Sat, 12 Mar 2011 13:39:23 +0000, Lorenzo Mainardi ha scritto:
>
>> Il Sat, 12 Mar 2011 14:07:47 +0100, stern scrisse:
>>
>>> Ciao,
>>> desidero sapere se esiste un comando da terminale oppure un programma
>>> che mi permetta di vedere se ho un file x , di cui non conosco
>>> preventivamente il nome , che sia stato salvato , sempre con lo stesso
>>> nome , in directory diverse.
>>> Grazie.
>>
>> man find
>
> non vedo come possa risolvere il problema con il solo find.
>
> prima deve trovare i file doppioni nel file system, e diciamo che lo
> puo' fare con
>
> find . -exec basename {} \;|sort > file1
>
ps:
1 -forse c'è qualche opzione di find che stampa solo il nome del file, ma
non avevo voglia di cercarla, quindi ho usato basename
2 - direi che un -print0 nei find non ci starebbe male
3 - quando dico file system intendo dalla directory corrente ,
ovviamente. :)
|
|
|
Re: Ricerca di file. [messaggio #36544 è una risposta a message #36535] |
sab, 12 marzo 2011 15:57 |
Dalet Messaggi: 210 Registrato: novembre 2010 |
Senior Member |
|
|
Il 12-03-2011, stern dice:
>desidero sapere se esiste un comando da terminale oppure un programma
>che mi permetta di vedere se ho un file x, di cui non conosco
>preventivamente il nome, che sia stato salvato, sempre con lo stesso
>nome, in directory diverse.
Il programma c'e' ed e' stato fatto apposta, e' locate.
Puoi farlo anche con find come t'han detto, pero' c'e'
la differenza che locate legge un db (aggiornato solo
giornalmente) e ci mette 1/10 di secondo, find invece ogni
volta deve cercare in tutto il disco o i dischi, tutto il
fs insomma, e allora ci puo' mettere parecchio.
Se vuoi aggiornare prima il db di locate devi dare come root:
[~]root_#: updatedb
oppure se hai paura di root:
[~]stern_$: sudo updatedb
se pero' vuoi che ogni utente possa leggere quel che c'e'
in ogni directory, anche riservata, devi darlo cosi':
updatedb -l 0
(con o senza sudo), oppure ancora se in entrambi i casi
vuoi vedere scorrere tutto quel che scrive nel db, devi
aggiungere l'opzione -v, cioe':
[~]root_#: updatedb -v -l 0
(e' chiaro che in tutti i casi finche' non scrivi nuovi file
non hai nessun bisogno di ridarlo, insomma fai una sola volta
quel che find ripete per ogni ricerca.. e poi find non salta
certe directory che invece deve saltare: guardati il file
/etc/updatedb.conf per rendertene conto)
Ps. Guarda che se non hai debian o derivate, ma slackware
o derivate le opzioni forse son diverse, dai man locate,
perche' il vero nella deb ha mlocate, nella slack slocate.
--
Saluti, Dalet
|
|
|
Re: Ricerca di file. [messaggio #36559 è una risposta a message #36544] |
sab, 12 marzo 2011 19:59 |
RedWiz Messaggi: 147 Registrato: novembre 2010 |
Senior Member |
|
|
Il Sat, 12 Mar 2011 14:57:55 +0000, Dalet ha scritto:
> Il 12-03-2011, stern dice:
>
>>desidero sapere se esiste un comando da terminale oppure un programma
>>che mi permetta di vedere se ho un file x, di cui non conosco
>>preventivamente il nome, che sia stato salvato, sempre con lo stesso
>>nome, in directory diverse.
>
> Il programma c'e' ed e' stato fatto apposta, e' locate.
vero, ma in ogni caso gli serve sapere prima i nomi dei file doppioni,
quindi deve ficcarlo dentro un algoritmo tipo il mio.
E locate fa ricerca su tutto il file system, non in una singola
directory .
|
|
|
Re: Ricerca di file. [messaggio #36562 è una risposta a message #36559] |
sab, 12 marzo 2011 21:50 |
Dalet Messaggi: 210 Registrato: novembre 2010 |
Senior Member |
|
|
Il 12-03-2011, RedWiz dice:
>Il Sat, 12 Mar 2011 14:57:55 +0000, Dalet ha scritto:
>>Il 12-03-2011, stern dice:
>>>desidero sapere se esiste un comando da terminale oppure un programma
>>>che mi permetta di vedere se ho un file x, di cui non conosco
>>>preventivamente il nome, che sia stato salvato, sempre con lo stesso
>>>nome, in directory diverse.
>>Il programma c'e' ed e' stato fatto apposta, e' locate.
>vero, ma in ogni caso gli serve sapere prima i nomi dei file doppioni,
>quindi deve ficcarlo dentro un algoritmo tipo il mio.
>E locate fa ricerca su tutto il file system, non in una singola
>directory .
Si' ma io gliel'ho postato perche' uso moltissimo locate,
anche al di la' del fs, cioe' ho il db di decine di cdrom
e trovo quel che cerco in qualche secondo compreso il tempo
di battere il comando di ricerca.
(be' la storia dei doppioni non l'ho considerata, mo' guardo
le righe di comando tue, mica l'aveva detto dei doppioni...
visto, e il comando comm non lo conoscevo, buono a sapersi!)
--
Saluti, Dalet
|
|
|
Vai al forum:
Ora corrente: lun ago 05 21:20:52 CEST 2024
Tempo totale richiesto per generare la pagina: 0.02446 secondi
|