[Risolto] strano funzionamento cp e di altri comandi base

Installazione, configurazione e uso di programmi e strumenti.
Zagorax
Prode Principiante
Messaggi: 99
Iscrizione: lunedì 14 luglio 2008, 16:13

[Risolto] strano funzionamento cp e di altri comandi base

Messaggio da Zagorax »

Ciao a tutti,

mi sto scontrando con un funzionamento di cp che non riesco a capire.
Si tratta della copia dei file nascosti.

A scopo didattico creaimo l'ambiente di prova. :D

Codice: Seleziona tutto

mkdir test1 test2
cd test1
mkdir a b c .d .e .f
Quindi abbiamo due cartelle e in una di esse sei cartelle di cui 3 nascoste.
Orbene:

Codice: Seleziona tutto

cp -r test1 test2
Copia tutto il contenuto di test1 in test2, cartelle nascoste comprese. Tuttavia copia anche la cartella test1, così che si avrà la cartella test1 dentro test2.
Se invece faccio:

Codice: Seleziona tutto

cd test1
cp -r * ../test2
Non viene copiata la cartella test1 ma vengono copiate all'interno di test2 soltanto le cartelle non nascoste.
Se do il seguente comando:

Codice: Seleziona tutto

cp -r .* ../test2
Accade poi una cosa che davvero non riesco a spiegarmi: copia tutte le cartelle nascoste... ma anche tutti i file della mia scrivania (che è la cartella in cui ho creato test1 e test2).

Anche rm non rimuove i file nascosti se si utilizza l'asterisco e fra le opzioni dei comandi non ne trovo nessuna che dice qualcosa del tipo "compresi i file nascosti".

Mi sapete aiutare? Ci sono già andato fregato più di una convinto di aver copiato tutto...

Grazie
Ultima modifica di Zagorax il lunedì 24 maggio 2010, 14:31, modificato 1 volta in totale.
Avatar utente
il_muflone
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 18878
Iscrizione: venerdì 1 maggio 2009, 15:31
Desktop: GNOME Shell
Distribuzione: Arch Linux x86_64
Località: Profondo sud
Contatti:

Re: strano funzionamento cp e di altri comandi base

Messaggio da il_muflone »

ciao

si tratta di un errore abbastanza comune che puo` portare anche a disastri

* significa tutti i files tranne quelli che iniziano per punto
.* significa copia tutto cio` che inizia per punto. all'interno di ogni directory c'e` una cartella di nome . che indica se stessa (e quindi copia il suo contenuto) e un'altra directory .. che indica la precedente.
ricorsivamente copiando tutte le .., si arriva a copiare TUTTO il disco, perche` ../../.. insomma e` la / e contiene tutto.
fai la prova con ls -R .* per vedere che sarebbe successo usando cp invece di ls

se vuoi copiare i files dentro test2 devi usare
cp -r {[!.],.[!.],..?}* test2
che significa:
escludi la directory .
includi tutto cio` che inizia per . ma non e` seguita da un secondo punto (..)
includi tutto il resto
http://www.muflone.com - I miei contatti e i miei progetti - La guida completa a VirtualBox
Non mandatemi messaggi privati per chiedere aiuto, li cancello senza rispondere nemmeno.
Avatar utente
il_muflone
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 18878
Iscrizione: venerdì 1 maggio 2009, 15:31
Desktop: GNOME Shell
Distribuzione: Arch Linux x86_64
Località: Profondo sud
Contatti:

Re: strano funzionamento cp e di altri comandi base

Messaggio da il_muflone »

http://www.muflone.com - I miei contatti e i miei progetti - La guida completa a VirtualBox
Non mandatemi messaggi privati per chiedere aiuto, li cancello senza rispondere nemmeno.
Zagorax
Prode Principiante
Messaggi: 99
Iscrizione: lunedì 14 luglio 2008, 16:13

Re: strano funzionamento cp e di altri comandi base

Messaggio da Zagorax »

Grazie mille! Ottima risposta!
Scrivi risposta

Ritorna a “Applicazioni”

Chi c’è in linea

Visualizzano questa sezione: Google [Bot] e 5 ospiti