Это невозможно, если вы загружаете его в режиме реального времени, так как после перезагрузки все исчезнет. Вы можете устанавливать их каждый раз при загрузке iso, если инструменты не требуют перезагрузки. Вы можете установить этот ISO где-нибудь, чтобы изменения остались после перезагрузки. Вы можете отредактировать скрипт build.sh, чтобы он не запускался make clean
, но это, вероятно, сломает некоторые другие вещи, поскольку make clean — это то, что вы делаете перед перекомпиляцией, чтобы убедиться, что вы получаете чистую сборку и не оставили -по -продуктам из предыдущих запусков.
Во-первых, регулярное предупреждение о том, что не выполняется разборls
. Тем не менее, предполагая, что ваши файлы названы разумно, вы могли бы сделать:
ls debs/*1.1.16* | grep -E 'Package1|Package2|package3'
Единственная разница здесь в том, что я избегаю 1-го grep, который не нужен, так как вы можете напрямую передать шаблон glob в ls
. Затем вместо устаревшего egrep
я использую grep -E
, что то же самое.
Однако по существу это то же самое, что и ваша команда. Если это не сработало, значит у вас нет подходящих файлов:
$ ls debs/
1.1.16.Package3 Package1.1.1.160 Package1.1.2.16 Package2.1.1.16
$ ls debs/*1.1.16* | grep -E 'Package1|Package2|package3'
debs/Package1.1.1.160
debs/Package2.1.1.16
Как и ожидалось, это показывает два совпадающих файла. И это именно то, что напечатала бы и ваша команда:
$ ls debs/* | grep 1.1.16 | egrep -e 'Package1|Package2|package3'
debs/Package1.1.1.160
debs/Package2.1.1.16
Обратите внимание, что поскольку package3
является строчным(p
вместоP
)в шаблоне grep
, файл 1.1.16.Package3
не отображается.
Есть способ сделать это без парсинга ls
вывода.
version=1.1.16
for package in debs/*Package1*${version}* \
debs/*Package2*${version}* \
debs/*package3*${version}*;
do
action with $package;
done
Таким образом, оболочка будет расширять глобус и перебирать соответствующие файлы. Если ни один файл не соответствует предоставленным шаблонам, скрипт просто пропустит цикл без каких-либо ошибок.
Или попробуйтеfind
:
version=1.1.16
find debs/ \( -name "*Package1*${version}*" -o -name "*Package2*${version}*" -o -name "*package3*${version}*" \)