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

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

здесь из cp man page

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

Скажем, у вас есть файл 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 независимо.