Я искал папку « .android
» и использовал ls
повсюду, пока не решил использовать locate
(после updatedb
) и не обнаружил, что она все время находилась в моей /home/johndoe/
папке. Когда я на ls
папку, то папка .android
нет в списке. Может кто-нибудь объяснить, почему это не перечислено для меня с моей любимой командой ls
?
3 ответа
Традиционно в UNIX и UNIX-подобных операционных системах .
Префикс означает скрытый файл, похожий на флаг "Скрытый" в Windows. Он работает где угодно, но его основное назначение - скрыть файлы конфигурации в вашем домашнем каталоге (например, ~/.cache/
или ~/.plan
- их часто называют "точечными файлами").
Чтобы заставить ls
отображать скрытые файлы, вам нужна опция -a
.
Почти все графические файловые менеджеры также соблюдают этот префикс; Ctrl H переключает "скрытые" файлы в GNOME.
Как пишет Роб Пайк в Google+, это была случайная особенность:
Давным-давно, когда разрабатывался дизайн файловой системы Unix, записи. и .. появился, чтобы облегчить навигацию. Я не уверен, но я верю .. вошел во время переписывания Версии 2, когда файловая система стала иерархической (вначале она имела совершенно другую структуру). Однако, когда вы набрали ls, эти файлы появились, поэтому Кен или Деннис добавили в программу простой тест. Тогда это было на ассемблере, но рассматриваемый код был эквивалентен примерно так:
if (name[0] == '.') continue;
Это утверждение было немного короче, чем должно было быть,
if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;
но эй, это было легко.
Две вещи привели.
Во-первых, был создан плохой прецедент. Многие другие ленивые программисты вносили ошибки, делая то же самое упрощение. Фактические файлы, начинающиеся с периодов, часто пропускаются, когда они должны быть подсчитаны.
Во-вторых, что гораздо хуже, была создана идея "скрытого" или "точечного" файла. Как следствие, более ленивые программисты начали сбрасывать файлы в домашний каталог каждого. У меня не так много всего установлено на машине, которую я использую, чтобы напечатать это, но мой домашний каталог содержит около ста файлов, и я даже не знаю, что из них большинство или они все еще нужны , Каждая оценка имени файла, которая проходит через мой домашний каталог, замедляется этим накопленным осадком.
Файлы и папки, начинающиеся с .
скрытые файлы в типичной UNIX-подобной ОС.
Используйте ls -a
для просмотра списка всех файлов.
Вам нужно передать параметр -a для всех, чтобы ls отображал точечные файлы.