nano
, как и большинство текстовых редакторов, ожидает, что имя файла будет редактироваться как аргумент командной строки, а не как стандартный ввод.
$ which env | nano # pass as standard input, does not work
$ nano "$(which env)" # pass as command-line argument, works
Так что это не работает, потому что nano не рассчитывает использовать его.
В некоторых редакторах (очевидно, не в вашей версии nano) вы можете использовать: от
$ which env | some-other-editor - # note hyphen as file name
до редактировать стандартный ввод как текст (вы бы редактировали документ со строкой "/ usr / bin / env ", а не сама программа / usr / bin / env).
Кроме того, если вы хотите изменить имена с разделителями в стандартном вводе на аргументы, xargs
сделает это за вас.
PS: который
не всегда делает то, что вы хотите, рассмотрите вместо этого команду -v
. Подробнее см.
Почему бы не использовать "which"? Что тогда использовать?
cat archive. * Tar | tar xvf - -g / dev / null --ignore-zeros -C destination
В конце файлов tar стоит маркер конца архива (2x 512 блоков нулевых байтов. Tar продолжит чтение за маркером в некоторых случаях, но не будет принимать никаких данных.
- ignore-zeroes
укажет ему продолжать чтение независимо от того.
Связано: Tar поддерживает добавление в архивы; это достигается путем поиска до конца, перемотки двух блоков назад и продолжения записи.