Quando eu uso somente o cp --attributos?

10

Fazendo algum estudo sobre comandos básicos do Unix e tentando obter um exemplo quando eu quiser usar a seguinte opção de linha de comando --attributes-only para o comando cp

aqui é da página cp man

--attributes-only
              don't copy the file data, just the attributes
    
por Ask and Learn 24.12.2013 / 02:50

2 respostas

12

Digamos que você tenha um arquivo, file1 , que você saiba que deve ter atributos idênticos a file2 (você sabe que file2 tem os atributos corretos).

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

Uma forma de garantir que eles correspondam é verificar file2 e aplicar manualmente os atributos:

$ chmod 644 file1

No entanto, isso é complicado para automatizar e rotear. Seria mais fácil obter os atributos de file2 e aplicá-los a file1 programaticamente.

$ 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-only não faz nada sozinho; ele precisa ser combinado com outros sinalizadores de preservação 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.

--preserve é usado acima, que é documentado como sendo equivalente a --preserve=mode,ownership,timestamps . Internamente, você pode pensar nisso como "não copiar dados" em vez de "copiar somente atributos", e é por isso que você precisa transmitir --preserve independentemente disso.

    
por 24.12.2013 / 02:57
0

Se você tiver um smartphone, poderá escolher músicas do PC quando estiver longe:

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

Quando você estiver longe do PC, exclua os diretórios que deseja copiar no futuro.

$ cp -rn ~/Music smartphone/Music

Você escolhe músicas e arquivos vazios.

    
por 31.07.2018 / 02:36

Tags