Wann verwende ich cp --attributes-only

10

Machen Sie eine Studie über grundlegende Unix-Befehle und versuchen Sie, ein Beispiel zu erhalten, wenn ich die folgende Befehlszeilenoption --attributes-onlyfür Befehle verwenden möchtecp

Hier ist von der cpManpage

--attributes-only
              don't copy the file data, just the attributes
Fragen und lernen
quelle

Antworten:

12

Angenommen, Sie haben eine Datei, von file1der Sie wissen, dass sie identische Attribute haben sollte file2(Sie wissen, dass file2sie die richtigen Attribute hat).

$ 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: -

Eine Möglichkeit, um sicherzustellen, dass sie übereinstimmen, besteht darin file2, die Attribute zu überprüfen und manuell anzuwenden:

$ chmod 644 file1

Dies ist jedoch umständlich zu automatisieren und zu skripten. Es wäre einfacher, die Attribute abzurufen file2und file1programmgesteuert anzuwenden .

$ 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-onlymacht nichts von selbst; Es muss mit anderen Attributerhaltungsflags kombiniert werden. Von 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.

--preservewird oben verwendet, was als äquivalent zu dokumentiert ist --preserve=mode,ownership,timestamps. Intern können Sie sich dies als "keine Daten kopieren" und nicht als "nur Attribute kopieren" vorstellen, weshalb Sie --preserveunabhängig davon übergeben müssen.

Chris Down
quelle
0

Wenn Sie ein Smartphone haben, können Sie Musik vom PC auswählen, wenn Sie weit davon entfernt sind:

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

Wenn Sie weit vom PC entfernt sind, löschen Sie Verzeichnisse, die Sie in Zukunft kopieren möchten.

$ cp -rn ~/Music smartphone/Music

Sie erhalten ausgewählte Musik und leere Dateien.

step.artur87
quelle