Что делает |>> в оболочке?

Пользовательские пакеты, созданные вами или загруженные из Интернета, не обслуживаются вашим менеджером пакетов без соответствующей настройки. Однако проще всего управлять одним -из .debфайлов черезdpkg.

Соответствующие опции для удаления данного пакета: -rили --removeи -Pили --purge.

Опция удаления удаляет все, кроме файлов. Таким образом, вам потенциально не придется перенастраивать программное обеспечение после переустановки. Опция очистки удаляет все, что известно dpkgоб этом пакете. Если ваш пакет включает в себя файлы скриптов prermи postrm, они будут выполняться в этом порядке, а также в процессе удаления пакета при использовании dpkg.

Запустите либо dpkg --remove mydemopkg, либо dpkg --purge mydemopkg, чтобы удалить пакет mydemopkg.

1
17.11.2020, 12:23
2 ответа
rm /tmp/output 2>/dev/null || :

grep nobody /etc/passwd | sed -e 's/:.*//' >>/tmp/output
grep nobody /etc/passwd |>>/tmp/output sed -e 's/:.*//'

cat /tmp/output  # should be two "nobody" lines

Два конвейера grep …|sed …полностью эквивалентны, показывая, что |>>не является специальным для оболочки *nix, просто|(конвейер )и>>(добавляют -к -операторы файла )объединены. Перенаправление может быть размещено в любом месте команды.

4
18.03.2021, 22:49

Как уже упоминалось, они эквивалентны

echo foo |>> file rev
echo foo | rev >> file

Но перенаправление >немного отличается :, если вы используете set -o noclobberдля защиты от случайного обрезания файлов

$ rm file
$ echo foo |>> file rev
$ cat file
oof
$ echo bar |> file rev
bash: file: cannot overwrite existing file
$ cat file
oof

В этом случае вы используете >|для целенаправленной перезаписи файла, что приводит к этой очаровательной команде

$ echo bar |>| file rev
$ cat file
rab
1
18.03.2021, 22:49

Теги

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