Как я могу исключить все & ldquo; отказано в разрешении & rdquo; сообщения от & ldquo; find & rdquo ;?

Нет, порядок свойств объектов не гарантируется в JavaScript; вам нужно использовать Array.

Определение объекта из ECMAScript Third Edition (pdf) :

4.3.3 Объект

Объект является членом типа Object. Это неупорядоченный набор свойств, каждый из которых содержит примитивное значение, объект или функцию. Функция, хранящаяся в свойстве объекта, называется методом.

blockquote>

Поскольку ECMAScript 2015, использование объекта Map может быть альтернативой. A Map разделяет некоторые сходства с Object и гарантирует порядок ключей :

Карта выполняет итерацию своих элементов в порядке размещения, тогда как порядок итерации не указан для объектов.

blockquote>

766
задан Jahid 17 December 2015 в 16:37
поделиться

4 ответа

Those errors are printed out to the standard error output (fd 2). To filter them out, simply redirect all errors to /dev/null:

find . 2>/dev/null > some_file

or first join stderr and stdout and then grep out those specific errors:

find . 2>&1 | grep -v 'Permission denied' > some_file
13
ответ дан 22 November 2019 в 21:22
поделиться

Redirect standard error. For instance, if you're using bash on a unix machine, you can redirect standard error to /dev/null like this:

find . 2>/dev/null >files_and_folders
23
ответ дан 22 November 2019 в 21:22
поделиться

Pipe stderr to /dev/null by using 2>/dev/null

find . -name '...' 2>/dev/null

58
ответ дан 22 November 2019 в 21:22
поделиться

Использование:

find . 2>/dev/null > files_and_folders

Это, конечно, скрывает не только ошибки в отказе в доступе , но и все сообщения об ошибках.

Если вы действительно хотите сохранить другие возможные ошибки, такие как слишком большое количество прыжков в символической ссылке, но не отказ в разрешении, то вам, вероятно, придется сделать предположение, что у вас нет Многие файлы называются «Отказано в доступе» и попробуйте:

find . 2>&1 | grep -v 'Permission denied' > files_and_folders

Если вы строго хотите отфильтровать только стандартную ошибку, вы можете использовать более сложную конструкцию:

find . 2>&1 > files_and_folders | grep -v 'Permission denied' >&2

Перенаправление ввода / вывода в команде find : 2> & 1> files_and_folders | . Канал перенаправляет стандартный вывод в команду grep и применяется первым. 2> & 1 отправляет стандартную ошибку в то же место, что и стандартный вывод (канал). > files_and_folders отправляет стандартный вывод (но не стандартную ошибку) в файл. Конечным результатом является то, что сообщения, записанные со стандартной ошибкой, отправляются по конвейеру, а регулярный вывод команды find записывается в файл. Grep фильтрует стандартный вывод (вы можете решить, насколько избирательным он будет, и, возможно, придется изменить орфографию в зависимости от локали и O / S) и финальные > & 2 означает, что оставшиеся сообщения об ошибках (записанные в стандартный вывод) снова переходят к стандартной ошибке. Окончательное перенаправление может рассматриваться как необязательное в терминале, но было бы очень неплохо использовать его в сценарии, чтобы сообщения об ошибках появлялись при стандартной ошибке.

Эта тема имеет бесконечные вариации в зависимости от того, что вы хотите сделать. Это будет работать на любом варианте Unix с любым производным оболочки Bourne (Bash, Korn,…) и любой POSIX-совместимой версией , найдите .

Если вы хотите адаптироваться к конкретной версии найдите в вашей системе, возможно, существуют альтернативные варианты. В частности, GNU find имеет множество опций, недоступных в других версиях - см. Принятый в настоящее время ответ для одного такого набора опций.

…) И любую POSIX-совместимую версию находят .

Если вы хотите адаптироваться к конкретной версии найти , установленной в вашей системе, могут быть доступны альтернативные варианты. В частности, GNU find имеет множество опций, недоступных в других версиях - см. Принятый в настоящее время ответ для одного такого набора опций.

…) И любую POSIX-совместимую версию находят .

Если вы хотите адаптироваться к конкретной версии найти , установленной в вашей системе, могут быть доступны альтернативные варианты. В частности, GNU find имеет множество опций, недоступных в других версиях - см. Принятый в настоящее время ответ для одного такого набора опций.

536
ответ дан 22 November 2019 в 21:22
поделиться
Другие вопросы по тегам:

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