Live Support My forum, my way! Il forum dei newsgroup: Linux » copiare files con dimensione diversa da zero bytes...
My forum, my way! Il forum dei newsgroup
Fast Uncompromising Discussions.Newsgroup FUDforum will get your users talking.

Loading
Utenti      F.A.Q.    Registrati    Login    Home
Home » Computer » Linux » copiare files con dimensione diversa da zero bytes...
copiare files con dimensione diversa da zero bytes... [messaggio #36467] mar, 08 marzo 2011 23:16 Messaggio successivo
Charles Carmichael  è attualmente disconnesso Charles Carmichael
Messaggi: 118
Registrato: gennaio 2011
Senior Member
Salve!
Al momento con cron, ho schedulato la copia di tutti i files *.bla da
una cartella all'altra, ma a volte mi capita che qualche file *.bla sia
corrotto e non debba farne il backup (con cron copio da un disco
all'altro tutti i giorni alle 10 del mattino).
Se volessi copiare tutti i files con dimensione diversa da zero (quindi
sicuramente buoni, fidatevi...altrimenti il files è zero bytes se il
programma che li genera và in panne) esiste qualche parametro da passare
a cp?

al momento faccio un brutale cp /dir1/* /dir2

Idee?

Grazie!
Re: copiare files con dimensione diversa da zero bytes... [messaggio #36469 è una risposta a message #36467] mar, 08 marzo 2011 23:43 Messaggio precedenteMessaggio successivo
Lem Novantotto  è attualmente disconnesso Lem Novantotto
Messaggi: 166
Registrato: novembre 2010
Senior Member
Charles Carmichael ha scritto:

> Idee?

Entra anche tu nel magico mondo di find. ;)

man find
Leggi bene, ci sono TEST che riguardano anche la dimensione dei file.

Dai che ce la fai! Poi posta qui la tua ipotesi di comando, che la si
controlla. :)
--
Bye, Lem
Ceterum censeo ISLAM esse delendum
____________________________________________________________ ________
Non sprecare i cicli idle della tua CPU, né quelli della tua GPU.
http://boinc.berkeley.edu
http://www.worldcommunitygrid.org/index.jsp
http://boincsimap.org/ http://www.gpugrid.net/
Re: copiare files con dimensione diversa da zero bytes... [messaggio #36470 è una risposta a message #36469] mer, 09 marzo 2011 07:56 Messaggio precedenteMessaggio successivo
Charles Carmichael  è attualmente disconnesso Charles Carmichael
Messaggi: 118
Registrato: gennaio 2011
Senior Member
Il 08/03/2011 23:43, Lem Novantotto ha scritto:
> Charles Carmichael ha scritto:
>
>> Idee?
>
> Entra anche tu nel magico mondo di find. ;)
>
> man find
> Leggi bene, ci sono TEST che riguardano anche la dimensione dei file.
>
> Dai che ce la fai! Poi posta qui la tua ipotesi di comando, che la si
> controlla. :)

ok, più tardi ci studio...adesso devo andare a lavoro...
cmq intuisco da quel che dici che devo passare il risultato di una find
come parametro al comando cp... appena rientro provo
Re: copiare files con dimensione diversa da zero bytes... [messaggio #36471 è una risposta a message #36470] mer, 09 marzo 2011 08:19 Messaggio precedenteMessaggio successivo
Vax Headroom  è attualmente disconnesso Vax Headroom
Messaggi: 14
Registrato: gennaio 2011
Junior Member
Interfacciandosi alla mia unita' neurale, Charles Carmichael disse:

> ok, più tardi ci studio...adesso devo andare a lavoro... cmq intuisco da
> quel che dici che devo passare il risultato di una find come parametro
> al comando cp... appena rientro provo

HINT 2: -exec

--
|
\|/ ____ \|/ \ ||_| | If you can walk and chew gum
"@'/ ,. \`@" \|| | | at the same time,
/_| \__/ |_\ Vax Headroom | you can run Linux
\__U_/ |
Re: copiare files con dimensione diversa da zero bytes... [messaggio #36474 è una risposta a message #36467] mer, 09 marzo 2011 11:34 Messaggio precedenteMessaggio successivo
Giovanni  è attualmente disconnesso Giovanni
Messaggi: 99
Registrato: novembre 2008
Member
On 03/08/2011 11:16 PM, Charles Carmichael wrote:
> Salve!
> Al momento con cron, ho schedulato la copia di tutti i files *.bla da
> una cartella all'altra, ma a volte mi capita che qualche file *.bla sia
> corrotto e non debba farne il backup (con cron copio da un disco
> all'altro tutti i giorni alle 10 del mattino).
> Se volessi copiare tutti i files con dimensione diversa da zero (quindi
> sicuramente buoni, fidatevi...altrimenti il files è zero bytes se il
> programma che li genera và in panne) esiste qualche parametro da passare
> a cp?
>
> al momento faccio un brutale cp /dir1/* /dir2

$ man test

Se in /dir1 ci sono subdirectories la cosa è un poco più complicata ma
partendo da un semplice script dovrebbe essere facilmente realizzabile

for file in $(ls /dir1 ); do
test -s /dir1/$file && cp /dir1/$file /dir2
done

Ciao
Giovanni
--
A computer is like an air conditioner,
it stops working when you open Windows.
< http://giovanni.homelinux.net/ >
Re: copiare files con dimensione diversa da zero bytes... [messaggio #36476 è una risposta a message #36470] mer, 09 marzo 2011 10:14 Messaggio precedenteMessaggio successivo
Roberto  è attualmente disconnesso Roberto
Messaggi: 892
Registrato: maggio 2009
Senior Member
Charles Carmichael ha scritto:

-cut-

> ok, più tardi ci studio...adesso devo andare a lavoro...
> cmq intuisco da quel che dici che devo passare il risultato di una find
> come parametro al comando cp... appena rientro provo

No, devi leggere il man di find per scoprire che il -print per
visualizzare i file trovati è solo UNO dei comandi che possono
essere usati sul risultato della ricerca.


--
|Save our planet!
Ciao |Save wildlife!
roberto |For your E-MAIL use ONLY recycled Bytes !!
|roberto poggi rpoggi@softhome.net
Re: copiare files con dimensione diversa da zero bytes... [messaggio #36480 è una risposta a message #36474] mer, 09 marzo 2011 12:52 Messaggio precedenteMessaggio successivo
Lem Novantotto  è attualmente disconnesso Lem Novantotto
Messaggi: 166
Registrato: novembre 2010
Senior Member
Giovanni ha scritto:

> Se in /dir1 ci sono subdirectories la cosa è un poco più complicata ma
> partendo da un semplice script dovrebbe essere facilmente realizzabile

O magari potremmo scrivere qualcosa in linguaggio macchina...

Su, su, sto scherzando! ;)))))

> test -s /dir1/$file && cp /dir1/$file /dir2

1) Non manca nulla? ; )

2) Allora preferisco:

test ! -s ... || cp ...

Pensiamo a che cosa succede se test va in errore, per qualsiasi motivo,
nell'un caso e nell'altro. Quale vogliamo che sia il default? La copia
dev'esser fatta, o no? Io dico di sì.
--
Bye, Lem
Ceterum censeo ISLAM esse delendum
____________________________________________________________ ________
Non sprecare i cicli idle della tua CPU, né quelli della tua GPU.
http://boinc.berkeley.edu
http://www.worldcommunitygrid.org/index.jsp
http://boincsimap.org/ http://www.gpugrid.net/
Re: copiare files con dimensione diversa da zero bytes... [messaggio #36482 è una risposta a message #36480] mer, 09 marzo 2011 14:15 Messaggio precedenteMessaggio successivo
mallin.shetland  è attualmente disconnesso mallin.shetland
Messaggi: 129
Registrato: novembre 2010
Senior Member
Addì mercoledì 9 marzo 2011 12:52 Lem Novantotto scrisse:

> Giovanni ha scritto:
>
>> Se in /dir1 ci sono subdirectories la cosa è un poco più complicata ma
>> partendo da un semplice script dovrebbe essere facilmente realizzabile
>
> O magari potremmo scrivere qualcosa in linguaggio macchina...
>
> Su, su, sto scherzando! ;)))))

Perché è uno scherzo?

No, seriamente, una soluzione in linguaggio macchina è preferibile
ad un for con una sostituzione di comando e ls.
Re: copiare files con dimensione diversa da zero bytes... [messaggio #36485 è una risposta a message #36474] mer, 09 marzo 2011 16:40 Messaggio precedente
Alessandro Selli  è attualmente disconnesso Alessandro Selli
Messaggi: 242
Registrato: novembre 2010
Senior Member
Giovanni ha scritto:

[...]

> Se in /dir1 ci sono subdirectories la cosa è un poco più complicata ma
> partendo da un semplice script dovrebbe essere facilmente realizzabile

A quanto ha già fatto notare Lem Novantotto aggiungo:

> for file in $(ls /dir1 ); do

*MAI* usare ls in uno script per verificare/trovare il nome di oggetti del
filesystem! Per più e più ragioni, tra le quali:

0) non è portabile (ci sono implementazioni diverse di ls);
1) ls non produce un output congruente con quello che altri comandi si
aspettano, specie nel caso di ricorsività tra più livelli di directory;
2) ls non tratta adeguatamente oggetti con caratteri inusuali ma legittimi;
3) ls non tratta diversamente gli spazi che fanno parte del nome di un
oggetto del filesystem dagli spazi usati come separatori;
4) ls non permette di discriminare facilmente tra i vari tipi di oggetti del
filesystem.

Da leggersi: http://mywiki.wooledge.org/ParsingLs

> test -s /dir1/$file && cp /dir1/$file /dir2

Le virgolette! Bisogna abituarsi a quotare ogni volta l'espansione delle
variabili, anche quando sembra inutile! È un'abitudine che eviterà (più
presto che dopo) spiacevoli errori, specie in script che alterano un filesystem!


Ciao,


--
Alessandro Selli, http://alessandro.route-add.net
AVVERTENZA: i messaggi inviati a "trappola" non mi arriveranno.
WARNING: messages sent to "trappola" will never reach me.
Chiave PGP/GPG: EC885A8B
Argomento precedente:proiettore
Argomento successivo:Lazarus: toolkit in uso ?
Vai al forum:
  


Ora corrente: mar mag 07 19:11:34 CEST 2024

Tempo totale richiesto per generare la pagina: 0.02017 secondi
.:: Contatti :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Live Support