sudo ls не показывает скрытые файлы в Linux

Сегодня я обнаружил, что sudo ls показывает скрытые файлы (то есть те, у которых есть имена, начинающиеся с . ) На OS X. Это меня так сильно удивило, что я задал вопрос об этом поведении, которое я до сих пор считаю несколько странным и неожиданным.

Оказывается , это поведение восходит к 2BSD в 1979 году .

Учитывая это, я хотел бы задать следующий вопрос. Почему Linux не ведет себя так?
Был ли период времени, когда у какого-то другого вида nixes было такое поведение? Есть ли какие-либо документы, сообщения, сообщения, объясняющие, кто и почему решил, что эту функцию нельзя копировать вообще или ее следует отбросить, если она была скопирована изначально?

  • ls для строки cut -f не работает
  • Игнорировать все совпадения для отрицательного шаблона extglob в рекурсивном ls
  • Почему файлы компакт-дисков не отображаются при монтировании в текущем каталоге?
  • ограничение на количество записей, возвращенных ls -lrt
  • Как я могу использовать `find` и сортировать результаты по mtime?
  • Поиск и удаление подпапок, содержащих только самые последние
  • ls показывает временную метку без времени для файла на NFS
  • Как сортировать файлы по части имени файла?
  • One Solution collect form web for “sudo ls не показывает скрытые файлы в Linux”

    В стандарте POSIX говорится:

    «Имена файлов, начинающиеся с ('.') И любой связанной информации, не должны быть выписаны, если явно не указаны, опция -A или -a предоставляется, или условие, определяемое реализацией, заставляет их записываться».

    Очевидно, что быть корневым не считается условием, которое заставляет скрытые файлы записываться реализацией GNU Coreutils ls которая обычно упакована в дистрибутивы Linux.

    Имеются веские причины не влиять на поведение программ, на которые влияют глобальные переменные, например, какой идентификатор пользователя действует. Сценарий, разработанный как non-root, изменит поведение при запуске с правами root.

    Скрытие файлов, начинающихся с точки, не является механизмом безопасности; он не должен быть связан с контекстами безопасности. Он скрывает то, что мы обычно не хотим видеть, например, каталог .git среди ваших .c исходных файлов или что-то еще. Если вы прочитали доступ к каталогу другого пользователя, вы можете перечислить их скрытые файлы. Точка скрывает элементы, присутствие которых ожидается и неинтересно, а не чье присутствие предназначено быть секретным.

    Пунктирные записи в каталогах, отличные от .. и . не имеют специального статуса операционной системы; просто ls относится к ним специально.

    Я просто попробовал Solaris 10; его также не имеет такого поведения. Это не универсальный «Unixism», который объясняет, почему требование POSIX сформулировано именно так.

    Interesting Posts

    Не удается записать cd в каталог, нет видимых проблем

    Создать номер строки / «индекс» в пределах диапазона от начального значения даты

    Отображать заголовки с помощью vimdiff или vim -d

    Как получить номер строки тех строк, которые имеют конкретное слово?

    Удалить большое количество каталогов под верхним уровнем

    Есть ли способ объединить форматированный вывод и полные аргументы команды в одной команде ps?

    изящно завершающие процессы с killall <имя_процесса>

    Медленная машина Linux

    Можно ли получить символ в терминальном курсе, используя escape-коды ANSI?

    Ужасно не появляется в GDM?

    Как запустить Xserver с драйвером VESA сверху с использованием 24bpp

    Как я настойчиво устанавливаю MTU для подключения PPTP VPN в Ubuntu?

    Каков эффект ACL / umask на разрешения исполняемого файла, сгенерированного gcc?

    OpenBSD stripdown

    Как установить чашки для использования всех лотков для бумаги на принтере?

    Linux и Unix - лучшая ОС в мире.