Quando uso cp --attributes-only


10

Fare qualche studio sui comandi Unix di base e cercare di ottenere un esempio quando voglio usare la seguente opzione della riga --attributes-onlydi comando per il comandocp

ecco dalla cppagina man

--attributes-only
              don't copy the file data, just the attributes

Risposte:


12

Supponi di avere un file a file1cui sai che dovrebbero avere attributi identici file2(sai che file2ha gli attributi corretti).

$ stat file{1,2}
  File: 'file1'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 1fh/31d Inode: 2326956     Links: 1
Access: (0600/-rw-------)  Uid: ( 1000/   chris)   Gid: ( 1000/   chris)
Access: 2013-12-24 09:53:20.248720441 +0800
Modify: 2013-12-24 09:53:20.248720441 +0800
Change: 2013-12-24 09:53:31.011984772 +0800
 Birth: -
  File: 'file2'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 1fh/31d Inode: 2326957     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   chris)   Gid: ( 1000/   chris)
Access: 2013-12-24 09:53:21.045382001 +0800
Modify: 2013-12-24 09:53:21.045382001 +0800
Change: 2013-12-24 09:53:21.045382001 +0800
 Birth: -

Un modo per assicurarsi che corrispondano è quello di andare e controllare file2e applicare manualmente gli attributi:

$ chmod 644 file1

Questo è, tuttavia, ingombrante da automatizzare e scrivere. Sarebbe più facile ottenere gli attributi file2e applicarli a livello di file1programmazione.

$ cp --attributes-only --preserve file2 file1
$ stat file1
  File: 'file1'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 1fh/31d Inode: 2326956     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   chris)   Gid: ( 1000/   chris)
Access: 2013-12-24 09:53:21.045382001 +0800
Modify: 2013-12-24 09:53:21.045382001 +0800
Change: 2013-12-24 09:57:06.320604649 +0800
 Birth: -

--attributes-onlynon fa nulla da solo; deve essere combinato con altri flag di conservazione degli attributi. Da info cp:

--attributes-only
     Copy only the specified attributes of the source file to the
     destination.  If the destination already exists, do not alter its
     contents.  See the `--preserve' option for controlling which
     attributes to copy.

--preserveè usato sopra, che è documentato come equivalente a --preserve=mode,ownership,timestamps. Internamente, puoi pensare a questo come "non copiare i dati" piuttosto che "copia solo gli attributi", motivo per cui devi passare --preserveindipendentemente.


0

Se hai uno smartphone, puoi scegliere la musica dal PC, quando sei lontano da esso:

$ cp -rn --attributes-only ~/Music smartphone/Music

Quando sei lontano dal PC, elimina le directory, vuoi copiarle in futuro.

$ cp -rn ~/Music smartphone/Music

Ottieni musica scelta e file vuoti.

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.