[...] Но, похоже, это не имеет смысла, поскольку мне всегда нужно вводить sudo, управляю ли я пакетами, редактирую конфигурацию файлы, установка программы из исходников, или что у вас есть. [...]
Подразумеваемое прилагательное, относящееся ко всему этому, заключается в том, что они являются общесистемными или глобальными изменениями. Вы должны учитывать происхождение Unix как многопользовательской системы 1 , где несколько пользователей будут использовать одну и ту же установку удаленно. Для одного пользователя-непрофессионала было бы бессмысленно разрешать изменять глобальные настройки для всех пользователей. Это был системный администратор, root, привилегии и ответственность.
В многопользовательской настройке у вас есть предустановленное программное обеспечение и их
общесистемная конфигурация в каталогах / usr
и / etc
соответственно. Прикосновение к этим
местоположениям потребует прав суперпользователя. Но поскольку программное обеспечение Unix написано
с учетом многопользовательского режима, вы можете скомпилировать и установить программное обеспечение в $ HOME
каталог 2 и получить собственные файлы конфигурации у себя дома,
где вы можете свободно редактировать файлы, не будучи суперпользователем.
Помимо установки собственного программного обеспечения дома, большинство общесистемных программ
считывают пользовательскую конфигурацию из $ HOME
сразу после
первого чтения конфигурации из / и т. Д.
. Это позволяет вам настроить большую часть
чего угодно, даже не используя root
.
На домашнем ПК в одной основной пользовательской настройке вы можете использовать sudo
и получить root-права на своем
пути к тому, что вам нравится. Но обычно не касаются конфигурации приложения
в / etc
, а вместо этого всегда предоставляют конфигурацию для конкретного пользователя дома.
Таким образом вы можете разрешить диспетчеру пакетов сбрасывать общесистемные конфигурации при
обновлениях. Установка нового программного обеспечения в масштабе всей системы вполне нормальна в однопользовательской
настройке; Пакеты дистрибутива не предполагают альтернатив, так что это простой выход.
Я позволю своему диспетчеру пакетов устанавливать материалы глобально, но все
скомпилированные из исходных кодов и самодельные вещи я оставляю в $ HOME
. И мне не нужно
использовать sudo для всего этого.
Если у вас есть файлы данных, хранилище за пределами вашего $ HOME
, вы можете chown
или
chgrp
каталоги на свое имя, чтобы вы можете получить доступ к файлам без
sudo
.
[1] (немного иронично, поскольку Unix задумывался как «однопользовательская» версия операционной системы Multics)
[2] (если система позволяет это, не монтируя домашние разделы как noexec)
Во-первых, 22[71-94]*R1_001.fastq.gz
не расширяется до того, что вы думаете, что расширяется до
Это эффективно22[1-9]*R1_001.fastq.gz
-в этом, [71 -94] представляет собой группу символов, где «7 ИЛИ от 1 до 9 ИЛИ 4» упрощается до «от 1 до 9».
22{71..94}*R1_001.fastq.gz
, скорее всего, это расширение, которое вы искали, но ваш цикл будет выполнять zcat
один раз для каждого найденного файла, а не объединять вещи вместе. По сути, каждый R1
файл последовательно получаетzcat
-ed в один и тот же выходной файл, перезаписывая предыдущие записи.
Я считаю, что это то, что вы на самом деле ищете, учитывая предположение (см. ниже):
for num in {71..94}; do zcat 22"$num"*R1_{L001,L002}.fastq.gz > "22${num}_merged_R1_001.fastq" ; done
Предположение:Вы хотите, чтобы результат был распакован, поэтому я удалил .gz
из результирующих файлов (, как указал Патрик)
Если это не так, просто измените zcat
на cat
и снова добавьте .gz
к результирующему файлу.