Напечатать несколько байт - это не самое сложное. Сложнее найти, какие байты должны быть напечатаны. Чтобы сделать это, lsb_release
должен проанализировать множество системных файлов. Вы можете увидеть, где он тратит время на ввод-вывод, отследив его системные вызовы:
strace -f -tt -T -o lsb_release.strace lsb_release
На моей машине примерно 1/3 времени уходит на выполнение команды
dpkg-query -f '${Version} ${Provides}\n' -W lsb-core lsb-cxx lsb-graphics lsb-desktop lsb-languages lsb-multimedia lsb-printing lsb-security
которая анализирует базу данных установленных пакетов. Других значительных потребителей ввода-вывода нет.
Поскольку это Python скрипт, вы также можете использовать Python profiler, чтобы получить представление о том, где он проводит время:
python -m cProfile
Для меня это не очень показательно, самые большие затраты времени связаны с инициализацией скрипта (он использует довольно много библиотек) и вызовом подпроцесса dpkg
.
Вы можете использовать n
опцию:
find. -type f -name "abc*" -exec mv -nt "/path/to/foo/bar" "{}" +
Изman mv
:
-n, --no-clobber
do not overwrite an existing file