Мне ещё нравится process substitution (башизм, но в, например, zsh он тоже есть). Если есть какая-то программа, принимающая в качестве аргумента файл, можно вместо этого файла подсунуть pipe.
Для примера rsync, которому можно передать файл со списком файлов:
get_file_list() {
# все названия выдуманы, совпадения случайны
find . -name "*.py"
find www
echo run
}
rsync \
-t \
-vv \
--files-from=<(get_file_list) \
. \
$DESTINATION \
Но ведь «клиент» из первого пункта можно без проблем на JavaScript в вебе сделать. Скачивать JSON, формировать DOM в JavaScript, вставлять в документ, и так далее.
У меня есть ощущение, что хранение файла в виде смещения и длины в каком-то дизъюнктивном числе числе едва ли будет эффективнее, чем хранение номера файла (все возможные файлы ведь можно занумеровать). Если вообще не эквивалентно.
Для примера rsync, которому можно передать файл со списком файлов:
get_file_list() { # все названия выдуманы, совпадения случайны find . -name "*.py" find www echo run } rsync \ -t \ -vv \ --files-from=<(get_file_list) \ . \ $DESTINATION \<blink>работает :).Надо нажать «Показать подробную информацию» и прокрутить ниже.
Вольный перевод: «У нас получилось повторить баг с помощью вашего тест-кейса, но пока что мы все ещё перекладываем баг из одной стопочки в другую»