Сегодня я столкнулся с такой же проблемой, что и в Ubuntu 14.10. Перезагрузилось и неожиданно появилось больше приложений в тире, и ни одно из предлагаемых решений (удалить кеш, переустановить линзы, удалить данные zeitgeist) не сработало для меня.
К счастью, я вспомнил одно изменение системы Я применил несколько часов до этого: я изменил свою локаль с de_DE.UTF-8 до de_DE с помощью:
sudo update-locale LANG=de_DE
Итак, если ни одно из решений не работает, попробуйте изменить свой язык на unicode -Ваш один. Для меня это было:
sudo update-locale LANG=de_DE.UTF-8
, а затем перезагрузка. Все работает как ожидается.
& в 2>&1 просто говорит, что число 1 является файловым дескриптором, а не именем файла. В этом случае standard output file descriptor.
Если вы используете 2>1, это приведет к перенаправлению ошибок в файл с именем 1, но если вы используете 2>&1, он отправит его в папку [ f11].
Это &> говорит, что отправляет оба, standard output и standard error, где-то. Например, ls <non-existent_file> &> out.file. Позвольте мне проиллюстрировать это на примере.
Setup:
Создайте файл koko со следующим содержимым:#!bin/bash
ls j1
echo "koko2"
Сделайте его исполняемым: chmod u+x koko Теперь обратите внимание, что j1 не существует. Теперь запустите ./koko &> output run cat output, и вы увидите ls: cannot access 'j1': No such file or directory
koko2
Оба, standard error (ls: cannot access 'j1': No such file or directory) и standard output (koko2) отправлены к файлу output.
Теперь запустите его снова, но на этот раз:
./koko > output
Сделайте cat output, и вы увидите только koko2. Но не ошибка, выводимая командой ls j1. Это будет отправлено на standard error, которое вы увидите в своем терминале.
Важное замечание благодаря @Byte Commander:
Обратите внимание, что в command >file 2>&1 порядок перенаправления это важно. Если вместо этого вы напишете command 2>&1 >file (что обычно не то, что вы хотите), оно сначала перенаправит файл stdout команды в файл и после этого перенаправит команду stderr в ее неиспользованную stdout команду, поэтому она покажет в терминал, и вы можете его переправить или перенаправить, но он не будет записан в файл.
& в 2>&1 просто говорит, что число 1 является файловым дескриптором, а не именем файла. В этом случае standard output file descriptor.
Если вы используете 2>1, это приведет к перенаправлению ошибок в файл с именем 1, но если вы используете 2>&1, он отправит его в папку standard output stream.
Это &> говорит, что отправляет оба, standard output и standard error, где-то. Например, ls <non-existent_file> &> out.file. Позвольте мне проиллюстрировать это на примере.
Setup:
Создайте файл koko со следующим содержимым:#!bin/bash
ls j1
echo "koko2"
Сделайте его исполняемым: chmod u+x koko Теперь обратите внимание, что j1 не существует. Теперь запустите ./koko &> output run cat output, и вы увидите ls: cannot access 'j1': No such file or directory
koko2
Оба, standard error (ls: cannot access 'j1': No such file or directory) и standard output (koko2) отправлены к файлу output.
Теперь запустите его снова, но на этот раз:
./koko > output
Сделайте cat output, и вы увидите только koko2. Но не ошибка, выводимая командой ls j1. Это будет отправлено на standard error, которое вы увидите в своем терминале.
Важное замечание благодаря @Byte Commander:
Обратите внимание, что в command >file 2>&1 порядок перенаправления это важно. Если вместо этого вы напишете command 2>&1 >file (что обычно не то, что вы хотите), оно сначала перенаправит файл stdout команды в файл и после этого перенаправит команду stderr в ее неиспользованную stdout команду, поэтому она покажет в терминал, и вы можете его переправить или перенаправить, но он не будет записан в файл.
клавиши [F4] В 2>&1 просто говорит о том, что количество 1 - это дескриптор файла, а не Имя файла. В этом случае standard output file descriptor.
если вы используете [F8], после этого перенаправление ошибок в файл с именем 1 но если вы используете 2>&1, то он направит его на [F11].
это &> говорит послать обоих, [от f13] и standard error, где-то. Например, ls <non-existent_file> &> out.file. Позвольте мне проиллюстрировать это на примере.
Установка:
создать файл koko со следующим содержанием:#!bin/bash
ls j1
echo "koko2"
сделайте его исполняемым: [f17 в] заметим, что j1 не существует теперь запустите [зг19] работать [20 фунтов], и вы увидите, ls: cannot access 'j1': No such file or directory
koko2
как, [клавиши f21] (ls: cannot access 'j1': No such file or directory) и standard output (koko2), были отправлены в файл [f25 привод датчика].
теперь запустите его снова, но на этот раз вот так:
./koko > output
[dиода d17]сделать cat output и вы увидите только koko2 как. Но не Выходная ошибка из ls j1 команда. Что будут посланы на standard error, который вы увидите в своем терминале.[!dиода d17] важное замечание, спасибо @командира байт:
заметим, что в command >file 2>&1 порядок перенаправления важно. Если вы пишете command 2>&1 >file вместо (который обычно не то, что вы хотите), он сначала перенаправляет команды [f32 из] в файл и после этого перенаправить команды stderr его теперь неиспользованный stdout, поэтому он будет отображаться в терминале, и вы могли бы трубку или перенаправить его снова, но он не будет записан в файл.
> FILE 2>&1 и &> FILE эквивалентны. См. 8.2.3.2. Перенаправление ошибок в руководстве Bash для начинающих Глава 8
[n]>&word называется дублированием дескриптора выходного файла (см. раздел 2.7.6 стандарта языка оболочки POSIX). Это конкретное поведение является особенностью борнеподобных оболочек, включая ksh, dash и bash; на самом деле стандарт основан на оболочке Борна и ksh. Изучая руководства tcsh и csh, они, по-видимому, не предоставляют возможности дублирования дескриптора файла, однако из описания >& это ведет себя как &> в bash (то есть перенаправляет ошибки и нормальный вывод в файл) .
В системах типа * nix, включая Ubuntu, вы часто слышите, что все это файл, а точнее раздел 2.7.6 . Стандартный вывод - это постоянный файловый дескриптор 1, а стандартная ошибка - файловый дескриптор 2. Таким образом, > FILE 2>&1 технически означает дубликат дескриптора файла 2 на дескриптор файла 1. Другими словами, этот ответ:
2> & amp; ; 1 сообщает оболочке дать команде дескриптор файла 2, который является дубликатом дескриптора 1. (т. Е. Stderr & amp; stdout указывает на тот же fd).Ключевым моментом здесь является указание, что дескриптор 1 должен быть установлен первым. Поскольку shell обрабатывает перенаправления в порядке слева направо, команда command >FILE 2&1 сообщает оболочке об обновлении stdout для command, чтобы сначала войти в FILE, и только тогда дескриптор 2 может стать копией 1, то есть 1 и 2 точки к тому же location - FILE.
Это, конечно, выходит за рамки стандартной ошибки и стандартного вывода. Как показано в в этом ответе , выполнив 3&>2
2> & amp; 1 сообщает оболочке дать команде дескриптор файла 2, который является дубликатом дескриптор 1. (т. е. stderr & amp; stdout указывает на тот же fd).
... вы дублируете (dup2) filedescritor 2 на filedescriptor 3, возможно, закрываете filedescriptor 3, если он уже открыт
Пример манипулирования файловыми дескрипторами, среди многих, будет захватывать вывод команды dialog в переменную
[n]>&word называется дублированием дескриптора выходного файла (см. раздел 2.7.6 стандарта языка оболочки POSIX). Это конкретное поведение является особенностью борнеподобных оболочек, включая ksh, dash и bash; на самом деле стандарт основан на оболочке Борна и ksh. Изучая руководства tcsh и csh, они, по-видимому, не предоставляют возможности дублирования дескриптора файла, однако из описания >& это ведет себя как &> в bash (то есть перенаправляет ошибки и нормальный вывод в файл) .
В системах типа * nix, включая Ubuntu, вы часто слышите, что все это файл, а точнее раздел 2.7.6 . Стандартный вывод - это постоянный файловый дескриптор 1, а стандартная ошибка - файловый дескриптор 2. Таким образом, > FILE 2>&1 технически означает дубликат дескриптора файла 2 на дескриптор файла 1. Другими словами, этот ответ:
2> & amp; ; 1 сообщает оболочке дать команде дескриптор файла 2, который является дубликатом дескриптора 1. (т. Е. Stderr & amp; stdout указывает на тот же fd).Ключевым моментом здесь является указание, что дескриптор 1 должен быть установлен первым. Поскольку shell обрабатывает перенаправления в порядке слева направо, команда command >FILE 2&1 сообщает оболочке об обновлении stdout для command, чтобы сначала войти в FILE, и только тогда дескриптор 2 может стать копией 1, то есть 1 и 2 точки к тому же location - FILE.
Это, конечно, выходит за рамки стандартной ошибки и стандартного вывода. Как показано в в этом ответе , выполнив 3&>2
2> & amp; 1 сообщает оболочке дать команде дескриптор файла 2, который является дубликатом дескриптор 1. (т. е. stderr & amp; stdout указывает на тот же fd).
... вы дублируете (dup2) filedescritor 2 на filedescriptor 3, возможно, закрываете filedescriptor 3, если он уже открыт
Пример манипулирования файловыми дескрипторами, среди многих, будет захватывать вывод команды dialog в переменную
> FILE 2>&1 и &> FILE эквивалентны. См. 8.2.3.2. Перенаправление ошибок в руководстве Bash для начинающих Глава 8
[n]>&word называется дублированием дескриптора выходного файла (см. раздел 2.7.6 стандарта языка оболочки POSIX). Это конкретное поведение является особенностью борнеподобных оболочек, включая ksh, dash и bash; на самом деле стандарт основан на оболочке Борна и ksh. Изучая руководства tcsh и csh, они, по-видимому, не предоставляют возможности дублирования дескриптора файла, однако из описания >& это ведет себя как &> в bash (то есть перенаправляет ошибки и нормальный вывод в файл) .
В системах типа * nix, включая Ubuntu, вы часто слышите, что все это файл, а точнее раздел 2.7.6 . Стандартный вывод - это постоянный файловый дескриптор 1, а стандартная ошибка - файловый дескриптор 2. Таким образом, > FILE 2>&1 технически означает дубликат дескриптора файла 2 на дескриптор файла 1. Другими словами, этот ответ:
2> & amp; ; 1 сообщает оболочке дать команде дескриптор файла 2, который является дубликатом дескриптора 1. (т. Е. Stderr & amp; stdout указывает на тот же fd).Ключевым моментом здесь является указание, что дескриптор 1 должен быть установлен первым. Поскольку shell обрабатывает перенаправления в порядке слева направо, команда command >FILE 2&1 сообщает оболочке об обновлении stdout для command, чтобы сначала войти в FILE, и только тогда дескриптор 2 может стать копией 1, то есть 1 и 2 точки к тому же location - FILE.
Это, конечно, выходит за рамки стандартной ошибки и стандартного вывода. Как показано в в этом ответе , выполнив 3&>2
2> & amp; 1 сообщает оболочке дать команде дескриптор файла 2, который является дубликатом дескриптор 1. (т. е. stderr & amp; stdout указывает на тот же fd).
... вы дублируете (dup2) filedescritor 2 на filedescriptor 3, возможно, закрываете filedescriptor 3, если он уже открыт
Пример манипулирования файловыми дескрипторами, среди многих, будет захватывать вывод команды dialog в переменную
> FILE 2>&1 и &> FILE эквивалентны. См. 8.2.3.2. Перенаправление ошибок в руководстве Bash для начинающих Глава 8