Когда я использую cp --attributes-only

10

Изучить основные команды Unix и попытаться получить пример, когда я хочу использовать следующий параметр командной строки --attributes-onlyдля командыcp

вот из cpсправочной страницы

--attributes-only
              don't copy the file data, just the attributes
Спрашивай и учись
источник

Ответы:

12

Скажем, у вас есть файл, file1который, как вы знаете, должен иметь идентичные атрибуты file2(вы знаете, что он file2имеет правильные атрибуты).

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

Один из способов убедиться, что они совпадают, - это пойти, проверить file2и вручную применить атрибуты:

$ chmod 644 file1

Это, однако, громоздко для автоматизации и написания сценариев. Было бы проще получить атрибуты file2и применить их к file1программно.

$ 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ничего не делает сам по себе; это должно быть объединено с другими флагами сохранения атрибута. От 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используется выше, что задокументировано как эквивалентное --preserve=mode,ownership,timestamps. Внутренне вы можете думать об этом как о «не копировать данные», а не «только копировать атрибуты», поэтому вы должны передавать --preserveнезависимо.

Крис Даун
источник
0

Если у вас есть смартфон, вы можете выбирать музыку с ПК, когда вы далеко от него:

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

Когда вы далеко от ПК, удаляете каталоги, хотите скопировать в будущем.

$ cp -rn ~/Music smartphone/Music

Вы получаете выбранную музыку и пустые файлы.

step.artur87
источник