¿Cuándo uso cp --attributes-only

10

Estudiando los comandos básicos de Unix e intentando obtener un ejemplo cuando quiero usar la siguiente opción de línea --attributes-onlyde comando para el comandocp

aquí es de la cppágina man

--attributes-only
              don't copy the file data, just the attributes
Pregunta y aprende
fuente

Respuestas:

12

Digamos que tiene un archivo, file1que sabe que debe tener atributos idénticos file2(sabe que file2tiene los atributos correctos).

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

Una forma de asegurarse de que coincidan es ir y verificar file2y aplicar manualmente los atributos:

$ chmod 644 file1

Sin embargo, esto es engorroso para automatizar y guiar. Sería más fácil obtener los atributos file2y aplicarlos file1programáticamente.

$ 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-onlyno hace nada por sí mismo; debe combinarse con otros indicadores de preservación de atributos. 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.

--preservese usa arriba, que está documentado como equivalente a --preserve=mode,ownership,timestamps. Internamente, puede pensar en esto como "no copiar datos" en lugar de "copiar atributos solamente", por lo que debe pasar de todos --preservemodos.

Chris Down
fuente
0

Si tiene un teléfono inteligente, puede elegir la música de la PC, cuando esté lejos de ella:

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

Cuando esté lejos de la PC, elimine directorios, desea copiar en el futuro.

$ cp -rn ~/Music smartphone/Music

Obtienes música elegida y archivos vacíos.

step.artur87
fuente