Quand dois-je utiliser cp --attributes-only


10

Faire une étude sur les commandes Unix de base et essayer d'obtenir un exemple lorsque je veux utiliser l'option de ligne de commande suivante --attributes-onlypour la commandecp

voici la cppage de manuel

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

Réponses:


12

Supposons que vous ayez un fichier, file1que vous savez avoir des attributs identiques à file2(vous savez qu'il file2a les bons attributs).

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

Une façon de vous assurer qu'ils correspondent est d'aller vérifier file2et d'appliquer manuellement les attributs:

$ chmod 644 file1

Ceci est cependant lourd à automatiser et à écrire. Il serait plus facile d'obtenir les attributs file2et de les appliquer par file1programmation.

$ 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-onlyne fait rien par lui-même; il doit être combiné avec d'autres indicateurs de conservation d'attributs. De 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.

--preserveest utilisé ci-dessus, qui est documenté comme étant équivalent à --preserve=mode,ownership,timestamps. En interne, vous pouvez penser à cela comme "ne pas copier les données" plutôt que "copier uniquement les attributs", c'est pourquoi vous devez passer --preservemalgré tout.


0

Si vous avez un smartphone, vous pouvez choisir de la musique depuis un PC, quand vous en êtes loin:

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

Lorsque vous êtes loin du PC, supprimez les répertoires, vous souhaitez les copier à l'avenir.

$ cp -rn ~/Music smartphone/Music

Vous obtenez la musique choisie et les fichiers vides.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.