Создайте тестовый файл с большим количеством нулевых байтов

Кажется, что Вы хотите сделать задание синхронизации dir.

Поскольку-u, - обновляют опцию cp

скопируйте только, когда ИСХОДНЫЙ ФАЙЛ является более новым, чем целевой файл или когда целевой файл отсутствует

Таким образом, можно добавить cronjob такой как cp -auv SOURCEDIR/* DESTDIR который скопирует те файлы, время изменения которых изменили. Это означает DESTDIR в конечном счете получит полную копию, в то время как загрузка закончилась.

rsync может сделать то же задание. например, rsync -av SOURCEDIR/ DESTDIR.

Хотя-a опция применяется, некоторые указанные атрибуты (например, владение) могут только быть сохранены суперпользователем.

Посмотрите man cp, man rsync для деталей.

25
08.06.2014, 18:48
2 ответа

С GNU truncate:

truncate -s 1M nullbytes

(принятие nullbytes не существовал заранее), создаст редкий файл на 1 мебибайт. Это - файл, который кажется заполненным нулями, но это не занимает места на диске.

Без truncate, можно использовать dd вместо этого:

dd bs=1048576 seek=1 of=nullbytes count=0

(с некоторыми dd реализации, можно заменить 1048576 1M)

Если Вы быть бы дисковое пространство выделяться на Linux и некоторых файловых системах, Вы могли сделать:

fallocate -l 1M nullbytes

Это выделяет место, на самом деле не пишущий данные в диск (пространство зарезервировано, но отмечено как неинициализированное).

dd < /dev/zero bs=1048576 count=1 > nullbytes

На самом деле запишет нули в диск. Это наименее эффективно, но если Вам нужны Ваши диски вращаться при доступе к тому файлу, это - то, для которого Вы захотите пойти.

Или способ @mikeserv обмануть dd в генерацию байтов NUL:

dd bs=1048576 count=1 conv=sync,noerror 0> /dev/null > nullbytes

Альтернатива с GNU head это не включает необходимость указать размер блока (1M, в порядке, но 10G, например, не был бы):

head -c 1M < /dev/zero > nullbytes

Или получить индикатор выполнения:

pv -Ss 1M < /dev/zero > nullbytes
56
27.01.2020, 19:40
  • 1
    Не использовать truncate для создания пустого файла, который будет использоваться в качестве объема подкачки … это, не будет работать! Использовать dd в этом случае вместо этого. –  Elias Probst 26.11.2013, 14:03
  • 2
    @EliasProbst, копия ITYM с/dev/zero вместо этого, не использует редкий файл. dd может создать редкие файлы, когда я показал также. –  Stéphane Chazelas 26.11.2013, 14:08
  • 3
    fallocate является лучшим и быстрым способом создать, потому что он резервирует пространство, и сделайте это быстро, но он не потрудился писать что-либо (stackoverflow.com/questions/257844 / …) –  curratore 26.11.2013, 14:23
  • 4
    ... или bs=1kx1k. Или <&1 dd bs=1kx1k conv=sync,noerror count="$rpt" | cat >file для литеральной записи к дисковой вещи. Не 100% на том, сколько эффективности могло бы быть потеряно в принуждении ошибки чтения, все же. –  mikeserv 15.06.2015, 07:03
dd if=/dev/zero of=/var/tmp/nullbytes count=1 bs=1M
27
27.01.2020, 19:40

Теги

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