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
Demandez et apprenez
la source

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.

Chris Down
la source
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.

step.artur87
la source