Если у Вас есть проблемы при получении “завершения аргумента”, работающего на новые команды затем compinit, вероятно, команда, в которой Вы нуждаетесь, однако это имеет механизм кэширования, который мог бы вызывать Вашу проблему.
В документации для моей версии (4.3.10) говорится, что compinit использует кэшируемый “файл дампа”, .zcompdump
, сохранить скомпилированные функции завершения для ускорения последующих вызовов. Это только делает недействительным файл дампа, когда это замечает изменение в количестве файлов завершения (fpath
файлы элемента, которые запускаются с #compdef …
или #autoload …
). По-видимому, установка нового программного обеспечения изменила бы количество таких файлов завершения (предполагающий, что это также установило свои файлы автоматического заполнения zsh в правильном месте), таким образом, я буду ожидать плоскость compinit
работать. Если Вы находитесь в ситуации, где она не работает, Вы, возможно, должны обойти или вручную делать недействительным файл дампа.
Для пропуска использования файла дампа использовать compinit -D
; это будет только влиять на текущую оболочку.
Для восстановления файла дампа удалите его и повторно выполнитесь compinit
:
rm -i ${ZDOTDIR:-${HOME:?No ZDOTDIR or HOME}}/.zcompdump &&
compinit
Это будет влиять на текущую оболочку, существующие оболочки, которые выполняют плоскость compinit
, и любые будущие оболочки.
Необходимо проверить, тратятся ли большую часть Вашего времени на ЦП или во вводе-выводе. Так или иначе существуют способы улучшить его:
A: не сжиматься
Вы не упоминали "сжатие" в своем списке требований, так попытайтесь отбросить "z" из своего списка аргументов: tar cf
. Это могло бы быть, ускоряют вещи немного.
Существуют другие методы к ускорению, которое регистрирует процесс, как использование "-N" для пропуска, Вы уже создали резервную копию прежде.
B: скопируйте целый раздел с dd
С другой стороны, если Вы создаете резервную копию всего раздела, делаете копию целого образа диска вместо этого. Это сохранило бы обработку и много времени поиска головки диска. tar
и любая другая программа, работающая в более высоком уровне, имеет издержки необходимости читать и записи рабочего каталога и inodes для нахождения, где содержание файла и сделать больше главного поиска на диске, читая каждый файл из различного места от диска.
Для резервного копирования базовых данных намного быстрее используйте:
dd bs=16M if=/dev/sda1 of=/another/filesystem
(Это предполагает, что Вы не используете RAID, который может изменить вещи немного),
Для повторения то, что сказали другие: мы должны знать больше о файлах, которые сохраняются. Я пойду с некоторыми предположениями сюда.
Если файлы только добавляются к каталогам (то есть, никакой файл не удаляется), удостоверьтесь, что Вы добавляете в существующий файл tar вместо того, чтобы воссоздать его каждый раз. Можно сделать это путем определения существующего имени файла архива в Вашем tar
команда вместо новой (или удаление старого).
Чтение из того же диска, в который Вы пишете, может уничтожать производительность. Попытайтесь писать в другой диск для распределения нагрузки ввода-вывода. Если архивный файл должен быть на том же диске как исходные файлы, переместите его впоследствии.
Просто повторившись, что сказанный @Yves. Если Ваши файлы резервных копий уже сжаты, нет большого количества потребности сжаться снова. Вы будете просто тратить впустую циклы ЦП.
Я удивлен, что никто не упоминает дамп и восстановление. Это будет намного быстрее, чем dd , если у вас есть свободное место в файловой системе.
Обратите внимание, что в зависимости от рассматриваемой файловой системы вам могут понадобиться разные инструменты:
Обратите внимание, что некоторые программы не встраивают -в сжатие (все, кроме канала дампа)-на стандартный вывод и используют pigz по мере необходимости. ;-)
Использование tar с компрессией lz4, как в
tar cvf - myFolder | lz4 > myFolder.tar.lz4
дает вам лучшее из обоих миров (довольно хорошее сжатие И скорость ). Ожидайте степень сжатия около 3, даже если ваши данные содержат двоичные файлы.
Дополнительная литература :сравнение алгоритмов сжатия Как смолить с помощью lz4
pigz
если существуют в системе больше чем один процессор. А-ч – Rufo El Magufo 21.08.2011, 23:39