Добавьте аргументы от предыдущей команды до zsh завершения

Существует всего лишь один способ определить оптимальный размер блока, и это - сравнительный тест. Я только что сделал быстрый сравнительный тест. Тестовой машиной является ПК, выполняющий Debian GNU/Linux с ядром 2.6.32 и coreutils 8.5. Обе включенные файловых системы являются ext3 на объемах LVM на разделе жесткого диска. Исходный файл составляет 2 ГБ (2040000 КБ, чтобы быть точным). Кэширование и буферизация включены. Перед каждым выполнением я освободил кэш с sync; echo 1 >|/proc/sys/vm/drop_caches. Время выполнения не включает финал sync сбросить буферы; финал sync берет порядок 1 секунды. same выполнения были копиями в той же файловой системе; diff выполнения были копиями к файловой системе на другом жестком диске. Для непротиворечивости времена, о которых сообщают, являются стеной, показывают время, полученное с time утилита, в секундах. Я только выполнил каждую команду однажды, таким образом, я не знаю, сколько различия там находится в синхронизации.

             same   diff
dd bs=64M    71.1   51.3
dd bs=1M     73.9   41.8
dd bs=4k     79.6   48.5
dd bs=512    85.3   48.9
cat          76.2   41.7
cp           77.8   45.3

Заключение: большой размер блока (несколько мегабайтов) помогает, но не существенно (намного меньше, чем я ожидал для копий того-же-диска). И cat и cp не выполняйте так плохо. С этими числами я не нахожу dd стоящий беспокойства. Пойдите с cat!

22
21.01.2011, 07:00
1 ответ

Можно добавить completer к списку completers, используемого по умолчанию:

zstyle ':completion:*' completer _last_command_args _complete
6
27.01.2020, 19:43
  • 1
    Если существует кто-либо _last_command_args завершения, другие не показывают. Как Вы получаете их в дополнение к обычным? –  Gilles 'SO- stop being evil' 20.01.2011, 23:06
  • 2
    Спасибо за ответ это заставило меня достаточно близко получать что-то работающее на меня, таким образом, я принимаю его. Что я сделал по-другому отмечен как обновление вопроса выше. Ваше решение не распечатало обоих аргументы от последней команды, а также файлов, и т.д. от нормального completer. Я сочинил _complete в функции я создал, и она работает точно так же, как я хотел ее к. –  Ted Naleid 21.01.2011, 07:02
  • 3
    Вы правы, мой ответ не корректен. –  nicoulaj 22.01.2011, 17:31

Теги

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