Когда делают я использую CP - только для атрибутов

Вы могли сделать что-то как:

mv my-executable my-executable.bin

И создайте my-executable как сценарий обертки, который делает:

#! /bin/bash -
{ time "$0.bin" "$@" 2>&3 3>&-; } 3>&2 2>> /tmp/times.log

Сценарий мог добавить больше информации к журналу как время, это было запущено, кем, аргументы это было передано...

Учет процесса BSD, по крайней мере, на Linux действительно сообщает о процессорном времени (пользователь + sys), хотя не кумулятивным способом как time делает (дочернее процессорное время процессов не считается для родителя),

10
30.12.2013, 09:48
2 ответа

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

12
27.01.2020, 20:02

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

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

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

$ cp -rn ~/Music smartphone/Music

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

-1
27.01.2020, 20:02

Теги

Похожие вопросы