сохранить вывод `cat` в качестве заполнителя

Как ни странно, в моем случае это было вызвано конфигурационным файлом CUPS(/etc/cups/client.conf).

Этот файл ссылался на удаленный сервер cups, который не всегда был доступен. Сервер находился в моей рабочей сети, таким образом, когда на работе ярлыки и все работало без нареканий, а дома или в другом месте ничего не работало.

Я подозреваю, что gnome пытался получить доступ к серверу и блокировал другие пользовательские функции, а затем по тайм-ауту запроса выполняются все пользовательские вызовы в очереди. Тем не менее, у меня нет доказательств этого (ничего странного в журнале или что-то в этом роде. смог найти)

Удаление этого файла решило мою проблему.

0
02.10.2019, 11:45
1 ответ

Да, в оболочке bashвы можете использовать замену процесса:

minimap -ax map-ont /path/to/fasta.file <( cat *.fastq ) >output.sam

<(... )— это подстановка процесса. Он будет заменен именем пути именованного канала (что-то вроде /dev/fd/XXX), который будет производить вывод команды внутри при чтении из него. Вывод команды в процессе подстановки не сохраняется на диске.

Пока инструменту minimapне нужно прыгать назад и вперед по данным fastq, а просто считывать их последовательно, это, вероятно, будет работать.

Делая это без замены процессов (это также будет работать с shили любой оболочкой POSIX):

mkfifo fastq_data
cat *.fastq >fastq_data &
minimap -ax map-ont /path/to/fasta.file fastq_data >output.sam
rm fastq_data

Это почти то же самое, что и первая команда. Он создает именованный канал и объединяет с ним данные fastq (, catработает как фоновое задание, пока весь его вывод не будет прочитан minimap, а затем завершается ). Затем вызывается инструмент minimapс именованным каналом для данных fastq. Когда это будет сделано, именованный канал будет удален.

Чтение из канала fastq_dataозначает чтение напрямую из команды cat, а не из какого-то временного файла. Опять же, результат catникогда не сохраняется на диске.

Если инструменту minimapпо какой-то причине требуется файл fastq с определенным суффиксом имени файла, это может быть лучшим вариантом. Просто назовите свой именованный канал как data.fastqили аналогичный.

4
28.01.2020, 02:17

Теги

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