Scopo di cp -x (rimanere sul file system)?


25

Se volessi rimanere sullo stesso file system, non potrei semplicemente specificare un percorso di output per lo stesso file system?

O è per evitare di lasciare accidentalmente l'attuale file system?


1
-x in un contesto diverso: unix.stackexchange.com/a/358331/30851 ma lo stesso per cp: -x salta le cose, se stai migrando filesystem e vorresti che fosse una copia completa, considera il montaggio in un modo che dia tu il quadro completo.
frostschutz,

1
Potresti chiedere lo stesso a molte bandiere, ad esempio -i: "perché non specificare semplicemente una destinazione che non esiste"?
JigglyNaga,

1
@JigglyNaga Ci stavo pensando anch'io. Ma -x non è stato formulato bene nella documentazione e molto meno ovvio.
neverMind9

Risposte:


59

Essa limita in cui i file vengono copiati da , non dove sono copiati. È utile con copie ricorsive, per controllare come cpscende nelle sottodirectory. così

cp -xr / blah

copierà solo il file system di root, non nessuno degli altri file system montati.

Vedi la cp -xdocumentazione (sebbene la sua distinzione sia sottile).


3
Oh sì, potresti non voler copiare le condivisioni di rete in / mnt. Né un repository RCS remoto montato sotto l'unità principale.
mckenzm,

1
@mckenzm Anche perché /mntè solo una convenzione umana a volte imposta dalla configurazione di una distribuzione ma non un requisito del sistema operativo. A volte ho dei filesystem di rete montati sotto /var/somewebsite/www/sessionsper implementare i server web di bilanciamento del carico
slebetman,

In effetti, questo tipo di flag impedisce di copiare accidentalmente enormi condivisioni di rete o supporti rimovibili che hai dimenticato di aver montato. E non è necessario fornire --excludeopzioni per bloccarli manualmente. Molto utile con rsync.
Lassi,

3
Evita inoltre di copiare file system come /dev, ecc. /proc, /sysChe in genere non si desidera leggere "in blocco".
Stephen Kitt,

28

Il -xflag to cpè un'estensione GNU. Quando si copia un singolo file, questa opzione non avrà alcun effetto, ma quando si copia un'intera gerarchia di file, l' -xopzione impedisce la copia di file e directory che non vivono sullo stesso filesystem dell'origine originale.

Ad esempio, su un filesystem con mount points at /usre /usr/local, using cp -xR /usr /some-destnon copia la gerarchia in /usr/local.

Ci sono altre utilità con un -xopzione con la semantica simili, come due find(il flag viene chiamato -xdevper find), e rsync.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.