Коли я використовую cp - тільки для розподілу


10

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

ось із cpсторінки man

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

Ви отримуєте вибрану музику та порожні файли.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.