Linux вывести только скрытые файлы

Как показать только скрытые файлы в Терминале?

У меня есть каталог, который содержит тысячи файлов, некоторые из них скрыты.

Команда ls -a перечислить все файлы, в том числе скрытые, но мне нужно просто перечислить скрытые файлы.

Какую команду я должен использовать?

24 ответа

Будет только список скрытых файлов.

 -l use a long listing format -d, --directory list directory entries instead of contents, and do not derefer‐ ence symbolic links .?* will only state hidden files 

Делает именно то, что ищет OP.

Если вы просто хотите, чтобы файлы в вашем текущем каталоге (без рекурсии), вы можете сделать

Это напечатает имена всех файлов, имя которых начинается с . и сопровождается одним или несколькими не точечными символами. Обратите внимание, что это не удастся для файлов, имя которых начинается с последовательных точек, например, . foo не будет показан

Вы также можете использовать find :

find -mindepth 1 -prune -name '.*' 

-mindepth гарантирует, что мы не совпадаем . и -prune Значит это find не сойдет в подкаталоги.

find обычно это лучший вариант для сложных поисков, чем использование подстановки имен.

find . -mindepth 1 -maxdepth 1 -name '.*' 
find . -mindepth 1 -maxdepth 1 -name '.*' -o -name '*~' 

find . ищет в текущем каталоге

-mindepth 1 исключает. и.. из списка

-maxdepth 1 ограничивает поиск в текущем каталоге

-name ‘.*’ найти имена файлов, которые начинаются с точки

-name ‘*~’ найти имена файлов, заканчивающиеся тильдой (обычно это файлы резервных копий из программ редактирования текста)

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

if [[ -f .hidden]] # if '.hidden' exists and is a file then while read filename # read file name from line do if [[ -e "$filename" ]] # if the read file name exists then echo "$filename" # print it fi done < .hidden # read from .hidden file fi 

С помощью find а также awk ,

find . -type f -> Вывести список всех файлов в текущем каталоге вместе с его путем, как,

/ в качестве разделителя полей awk проверяет последнее поле, начиная с точки или нет. Если он начинается с точки, то он печатает последнее поле этой соответствующей строки.

Я думаю, что вы можете сделать это с помощью следующей команды.

ls -a | grep "^\." | grep -v "^\.$" | grep -v "^\..$" 

ls -a введенная вами команда, которая показывает все файлы и каталоги в текущем рабочем каталоге.

Читайте также:  Обновление корневых сертификатов linux

grep "^\." добавленная команда, которая фильтрует вывод, показывает только скрытые файлы (название начинается с "." ).

grep -v "^\.$" | grep -v "^\..$" добавлена ​​команда, которая фильтрует вывод для исключения., ..(Это текущий и родительский каталог).

Если в некоторых именах файлов может быть больше строки "\n" Приведенный выше пример может быть неверным.

Поэтому я предлагаю следующую команду, чтобы решить эту проблему.

Что еще ты мог сделать, is ls .?* Или же ls .!(|) это покажет вам все в текущем каталоге скрытые файлы / каталоги сверху и другие файлы / каталоги ниже

например: из моего терминала

$ ls .?* .bash_history .dmrc .macromedia .weather .bash_logout .gksu.lock .profile .wgetrc .bash_profile .bashrc.save .ICEauthority .toprc .Xauthority .bashrc .lastdir .viminfo .xsession-errors .bashrc~ .dircolors .lynxrc .vimrc .xsession-errors.old . Baron .adobe: Flash_Player .aptitude: cache config .cache: compizconfig-1 rhythmbox dconf shotwell 

Теперь обратите внимание на результаты выше, он показывает вам каждый файл /dir с его subdir и скрытыми файлами прямо ниже.

[1:0:248][[email protected]:pts/4][~/Desktop] $ ls .!(|) .bash_aliases .bashrc1 .bashrc1~ . askapache-bash-profile.txt examples.desktop Public top-1m.csv backups Firefox_wallpaper.png PycharmProjects top-1m.csv.zip Desktop java_error_in_PYCHARM_17581.log Shotwell Import Log.txt topsites.txt Documents Music Templates Videos Downloads Pictures texput.log vmware 

Извините, я не могу комментировать. объяснить разницу между ls .?* и @cioby23 ответ ls -d .[!.]* . * И почему он на самом деле печатает скрытые файлы дважды, потому что буквально вы спрашиваете дважды . * , .?* , .[!.]* это одно и то же, поэтому добавление любого из них с разными командными символами приведет к печати дважды.

Источник

Как показать скрытые файлы в Linux

img

В Linux скрытые файлы - это файлы, которые не отображаются напрямую при выполнении стандартного списка каталогов ls.

Показать скрытые файлы в Linux

Скрытые файлы, также называемые dotfiles в операционных системах Unix, - это файлы, используемые для выполнения некоторых сценариев или для хранения конфигурации некоторых служб на вашем хосте.Некоторым популярным примером скрытых файлов являются файлы, содержащиеся в домашнем каталоге пользователя: .bashrc , в котором хранятся сценарии инициализации пользователя, или .bash_logout , который выполняется всякий раз, когда вы выходите из сеанса bash.

В некоторых случаях вам необходимо иметь возможность легко находить скрытые файлы для настройки параметров конфигурации по умолчанию. Мы рассмотрим все методы, используемые для отображения скрытых файлов в Linux.

Показать скрытые файлы в Linux с помощью ls

Самый простой способ показать скрытые файлы в Linux - это использовать команду ls с опцией -a , что значит all.

ls

Например, чтобы показать скрытые файлы в домашнем каталоге пользователя, вы должны выполнить эту команду. Кроме того, вы можете использовать флаг -A для отображения скрытых файлов в Linux. При использовании A подразумеваемые файлы не будут отображаться (например, предыдущая папка также называется . )

$ ls -al ~ total 356 drwxr-xr-x 14 schkn schkn 4096 Oct 26 06:08 . --- Не показано с -A drwxr-xr-x 3 root root 4096 Jan 5 2019 .. --- Не показано с -A -rw------- 1 schkn schkn 43436 Oct 26 06:08 .bash_history -rw-r--r-- 1 schkn schkn 220 Apr 4 2018 .bash_logout -rw-r--r-- 1 schkn schkn 3771 Apr 4 2018 .bashrc drwx------ 2 schkn schkn 4096 Jan 5 2019 .cache $ ls -A ~ total 348 -rw------- 1 schkn schkn 43436 Oct 26 06:08 .bash_history -rw-r--r-- 1 schkn schkn 220 Apr 4 2018 .bash_logout -rw-r--r-- 1 schkn schkn 3771 Apr 4 2018 .bashrc drwx------ 2 schkn schkn 4096 Jan 5 2019 .cache

В этом случае скрытыми файлами являются файлы bash_history, bash_logout , bashrc и файлы кэша.

Читайте также:  Pantum bm5100fdw driver linux

Показать исключительно скрытые файлы с помощью ls

В некоторых случаях вас могут не интересовать другие файлы, кроме тех которые скрыты. Чтобы показать исключительно скрытые файлы в Linux, используйте команду ls со специальным регулярным выражением.

Например, используя пример, который мы описали ранее, мы получили бы следующий результат.

$ ls -dl .[^.]* ~ -rw------- 1 schkn schkn 43436 Oct 26 06:08 .bash_history -rw-r--r-- 1 schkn schkn 220 Apr 4 2018 .bash_logout -rw-r--r-- 1 schkn schkn 3771 Apr 4 2018 .bashrc drwx------ 2 schkn schkn 4096 Jan 5 2019 .cache drwx------ 5 schkn schkn 4096 Jan 5 2019 .config

Показать скрытые файлы в Linux, используя find

Еще один эффективный способ найти скрытые файлы во всей вашей системе - использовать команду find.

Чтобы показать все скрытые файлы в вашей системе, запустите find с опцией name .

Обратите внимание, что выходные данные команды перенаправляются в /dev/null , чтобы не отображаться в каталогах, к которым у вас нет доступа.

/dev/null - специальный файл в системах UNIX, представляющий собой так называемое "пустое устройство", в которое всегда успешно происходит запись. Обычно используется для того чтобы туда отправлять ненужный вывод программы.

Чтобы показать скрытые файлы в текущем рабочем каталоге, запустите find с параметром maxdepth .

$ find . -name ".*" -maxdepth 1 2> /dev/null

Показать скрытые каталоги используя find

Чтобы показать скрытые каталоги в текущем рабочем каталоге, без рекурсивного поиска, используйте команду find и укажите тип d .

$ find . -name ".*" -maxdepth 1 -type d 2> /dev/null

find

Показать скрытые файлы в Linux, используя dir

Команда dir - это команда, близкая к команде ls в Linux: она отображает содержимое каталога в вашей системе.

Подобно команде ls , ее можно использовать для отображения скрытых файлов в каталоге.

Чтобы показать скрытые файлы, выполните команду dir с опцией -a или -A .

Например, чтобы показать скрытые файлы в вашем домашнем каталоге, вы должны выполнить:

$ dir -A ~ .bash_history .dbshell .mongorc.js .viminfo scripts

Обратите внимание, что команда dir также показывает скрытые каталоги, которые могут находиться в пути, который вы ищете.

Подобно команде ls , вы можете выбрать отображение скрытых файлов исключительно в папке, чтобы не беспокоиться обо всех остальных файлах.

Например, в домашнем каталоге это даст такой вывод:

$ dir -dl .[^.]* ~ -rw------- 1 schkn schkn 43436 Oct 26 06:08 .bash_history -rw-r--r-- 1 schkn schkn 220 Apr 4 2018 .bash_logout -rw-r--r-- 1 schkn schkn 3771 Apr 4 2018 .bashrc drwx------ 2 schkn schkn 4096 Jan 5 2019 .cache

Отображение скрытых файлов в среде рабочего стола GNOME

Наконец, для тех, кто работает в среде рабочего стола GNOME, вы также можете показывать скрытые файлы, когда просматриваете систему с помощью проводника.

Читайте также:  Arch linux настройка vpn

GNOME

Чтобы отобразить скрытые файлы через интерфейс GNOME, нажмите небольшую стрелку вниз, расположенную в верхнем правом углу экрана.

При появлении небольшого выпадающего меню обязательно установите флажок «Показать скрытые файлы» (Show Hidden Files).

Show Hidden Files

Как следствие, скрытые файлы и папки будут видны в проводнике.

Скрытые файлы и папки

Вывод

В этом руководстве вы увидели все способы отображения скрытых файлов в Linux: с помощью команды ls, но у вас также есть команда find и dir. Если вы используете среду рабочего стола GNOME, есть возможность легко их отобразить с помощью небольшой опции.

Источник

Отображение только скрытых файлов в Linux

linux

Все в порядке. Вы видите скрытые файлы, имена которых начинаются с точки (.). Но вы видите все файлы в текущем каталоге, скрытые и обычные.

Что если вы хотите видеть ТОЛЬКО скрытые файлы, а не обычные?

Здесь нет готовой к использованию опции, подобной -a и -A. Однако вы всегда можете найти способ добиться желаемого, объединив несколько команд с помощью замечательного перенаправления pipe.

Отображение только скрытых файлов и каталогов

Чтобы отобразить только скрытые файлы и каталоги, самый простой подход - показать скрытые файлы с помощью ls -a, а затем использовать grep для фильтрации только тех записей, которые начинаются с . (точка).

Символ ^ означает "начинается с". Символ точки должен быть экранирован с помощью \, а поскольку вы использовали специальные символы, все заключено в двойные кавычки. С помощью "^\." вы указываете команде grep показывать только результаты, начинающиеся с точки.

Альтернативный метод

Чтобы показать только скрытые файлы и каталоги в формате длинного списка (чтобы вы могли видеть, файл это или каталог), вы можете использовать следующее:

Как это работает? Во-первых, часть .* - это shell globbing. Она расширяется прямо на вводе. Так что, в принципе, вы можете думать об этом как:

ls -ld . .hidden-file .hid_dir .member.csv

Здесь важно использовать опцию -d. Она указывает ls перечислить только каталог, а не его содержимое. В противном случае команда ls покажет и содержимое .hid_dir.

Если вы не хотите отображать каталоги . и . вы можете использовать команду ls следующим образом:

Фокусируясь на части .!(|.), очевидно. Это шаблон. ! - это отрицание, а | - условие OR. (|.) означает ничто или точку. Когда вы отрицаете его с помощью !, вы говорите, что это не должно быть "ничего" или точка. Соедините все это вместе .!(|.) и вы получите шаблон, в котором за . следует что-то (таким образом, одиночная точка исключается), кроме другой точки (таким образом, исключается двойная точка).

Отображение только скрытых файлов (не скрытых каталогов)

Отобразить только скрытые файлы без скрытых каталогов довольно просто. Используйте следующее:

Вы отображаете и скрытые файлы, и каталоги, а затем отфильтровываете записи, начинающиеся с d (которые являются каталогами).

Конечно, может быть несколько других возможных способов.

Источник

Оцените статью
Adblock
detector