К примеру, есть команда вида:
Код: Выделить всё
bunzip2 -c somefile.tar.bz2 | tar -xvf -
Собственно, меня интересует последний "минус".
Зачем в командах такого вида он нужен? Потому что tar не является фильтром?
Модераторы: /dev/random, Модераторы разделов
Код: Выделить всё
bunzip2 -c somefile.tar.bz2 | tar -xvf -
Razielin писал(а): ↑03.10.2014 22:07Извиняюсь если вопрос совсем нубский, но давно интересует, а нигде толкового объянения не нашел.
К примеру, есть команда вида:
Код: Выделить всё
bunzip2 -c somefile.tar.bz2 | tar -xvf -
Собственно, меня интересует последний "минус".
Зачем в командах такого вида он нужен? Потому что tar не является фильтром?
Код: Выделить всё
bunzip2 -c somefile.tar.bz2 | tar -xv
Код: Выделить всё
tar -xjvf somefile.tar.bz2
Код: Выделить всё
tar -xvf somefile.tar.bz2
/dev/random писал(а): ↑03.10.2014 22:20Здесь "-" - это параметр, передаваемый опции -f. Эта опция ожидает имя файла, который нужно распаковывать. Многие команды (но далеко не все!), в том числе tar, принимают "-" в качестве имени файла, если нужно работать с stdin или stdout, а не с именованным файлом.
Между прочим, эта команда избыточна.
/dev/random писал(а): ↑04.10.2014 17:15На stdin передаётся не список файлов. stdin сам - файл. В отличие от обычных файлов, отдельный для каждого процесса. И команда должна знать, работать ли с ним или с каким-то другим файлом. А аргументы команды - это совершенно отдельная сущность. Обычно именно через них команда узнаёт, с чем работать и что именно делать.