tar и оператор "if"

ОБНОВЛЕНИЕ 2015 ГОДА

Ситуация изменилась решительно в течение последних нескольких лет.

Сегодня ответ: "Выполните всех их - В ТО ЖЕ ВРЕМЯ!"

Пока можно выполнить Докера на дистрибутиве (и существует хороший шанс, что Вы можете), затем, можно запустить программы в любом дистрибутиве Linux по желанию. Например, посмотрите мои Эксперименты Докера, и Вы найдете некоторые сценарии оболочки там, которые работают 20 (так!) различные дистрибутивы Linux на каждом вызове сценария. Сегодня это имеет значение еще меньше, какой дистрибутив я использую, если каждая команда, которую я выполняю, может быть выполнена в каком-либо другом дистрибутиве, если это имеет смысл.

Вот мой исходный ответ с 2012:

Лучший дистрибутив Linux

Лучший дистрибутив Linux для программирования-... все они. Нет действительно никакого распределения, которое я знаю об этом, было бы плохо для программирования. Инструменты и языки, которые Вы используете, доступны на каждом дистрибутиве Linux. Различия не с инструментами или языками, а с системами управления пакета, управлением версиями, философией, планами выпуска, рабочим столом по умолчанию или программным обеспечением, установленным по умолчанию, но это может обычно изменяться легко.

Debian

Например, при использовании Конюшни Debian затем система будет горным телом, но не получила бы новых возможностей после выпуска, только исправления ошибок, и Вы никогда не знаете, когда новая Стабильная версия Debian выходит: это выпущено, когда это готово.

Если Вы будете использовать Debian Нестабильный затем, то у Вас будет рабочая версия, которая всегда находится на лезвии, но Вы платите цену, что не все тестируется так же полностью как на Стабильном.

Ubuntu

Ubuntu основана на Debian, но версии более свежи, чем на Конюшне Debian, и это имеет предсказуемую временную шкалу выпуска, таким образом, можно запланировать обновления заранее, и можно использовать версию Долговременной поддержки и, несомненно, сможете получить исправления ошибок в течение 5 лет.

Другое различие - то, что Ubuntu не поддерживает столько же архитектуры сколько Debian так программное обеспечение, которое только доступно на архитектурах Intel, может использоваться по умолчанию, в то время как это не может использоваться по умолчанию на Debian.

Наиболее важным различием Ubuntu кроме косметики является AppArmour и Выскочка, но если это - преимущество, или недостаток полностью ваше дело. И Debian и Ubuntu являются очень разработчиком, дружелюбным, по моему опыту.

Дуга Linux, CentOS, Fedora, хинду, openSUSE, Slackware...

Можно также хотеть видеть то, что дистрибутивы предлагают коммерческой поддержке, или если они доступны в хостинговых компаниях, которые предлагают общий хостинг, выделенные серверы, VPSs и т.д.

Например, Linode в настоящее время предлагают те дистрибутивы: дуга Linux 2012.10, CentOS 6.2, Debian 6, Fedora 17, хинду, openSUSE 12.1, Slackware 13.37, Ubuntu 10.04 LTS, Ubuntu 11.10, Ubuntu 12.04 LTS и Вы в значительной степени не можете пойти, неправильно выбрав любого из них. Хорошо иметь ту же систему на Вашем ноутбуке, чем на Вашем сервере, но с другой стороны Вы не могли бы заботиться. Это может дать Вам некоторое представление относительно того, как протестированный и широко использовал, они, все же.

Сообщества

Другой способ сделать Ваш ум состоял бы в том, чтобы смотреть онлайн-сообществ дистрибутивов, о которых Вы думаете. Например, Ubuntu имеет, Спрашивает Ubuntu здесь относительно Exchange Стека, таким образом, можно проверить его.

Документация

Документация - также что-то, что может быть важно для Вас. Существует хорошая документация и Wiki для Ubuntu. Существует различный ресурс Debian и документация.

Это - просто примеры. Каждый дистрибутив имеет некоторое сообщество и документацию, так ищите его и посмотрите, удовлетворяет ли это Вас. Следует иметь в виду, что не всегда самое многочисленное сообщество должно быть лучшим для Вас, можно чувствовать себя более комфортно с меньшим, возможно, даже совершенно особый дистрибутив цели, с сообществом, которое высоко оценило бы интерес и возможные вклады.

Живые CD

Я предложил бы попробовать как много различных дистрибутивов, что можно обоснованно примерить Живые CD и выбрать то, что чувствует себя хорошо для Вас.

Можно запустить со списка основанных на Linux живых CD на Википедию и прочитать статьи Wikipedia о тех, что Вы интересуетесь для хорошего начала.

Удачи.

3
23.10.2013, 01:33
1 ответ

Вы проверяете, существует ли файл при помощи -f, но это не то, что Вы хотите сделать. Файл существует в файле tar, но -f не имеет никакого способа считать внутренние архивы tar отдельно. Например, если Ваш файл будет в "нечто/панели" в файле tar, то это будет искать родственника "нечто/панели" Ваш текущий каталог, который не существует.

Лучший путь состоит в том, чтобы просто проверить статус выхода grep, вместо того, чтобы пытаться проанализировать вывод.

printf 'enter date: '
read date
if tar -tvf tarfile.tar | grep some_file | grep -q "$date"; then
    echo yes
else
    echo no
fi
6
27.01.2020, 21:14

Теги

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