Поиск по сайту:

Был он, покуда судьба позволяла, хитрец не последний Средь лигурийцев (Вергилий).

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

FavoriteLoadingДобавить в избранное
1 июля 2022
Отображать только скрытые файлы в Linux Отображение скрытых файлов в Linux довольно просто. Вы используете команду ls следующим образом:

ls -a

 

Это нормально. Вы можете увидеть скрытые файлы, имена которых начинаются с точки (.).

Но вы видите все файлы в текущем каталоге, скрытые и обычные.

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

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

 

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

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

ls -a | grep "^\."

 

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

Позвольте нам поделиться примером. Вот содержимое нашего примера каталога:

andreyex@destroyer:~/toto$ ls -l
total 352
-rw-rw-r-- 1 andreyex andreyex  45443 May 24 09:03 apt-get.pdf
-rw-rw-r-- 1 andreyex andreyex  29983 May 27 16:07 bash.pdf
-rw-rw-r-- 1 andreyex andreyex 249773 May 26 14:56 cronjob-cheatsheet.png
-rw-rw-r-- 1 andreyex andreyex   4943 Jun  2 20:09 gnome-console-voiceover
-rw-rw-r-- 1 andreyex andreyex  12721 May 29 12:29 members.2022-05-29.csv
-rw-rw-r-- 1 andreyex andreyex    143 May 30 12:06 routes.yaml

 

Теперь мы собираемся отфильтровать его, чтобы отображались только скрытые файлы и каталоги:

andreyex@destroyer:~/toto$ ls -a | grep "^\."
.
..
.hidden-file
.hid_dir
.member.csv

 

Он показывает спец. (текущий каталог) и .. (родительский каталог). Вы можете отфильтровать их, используя опцию -A вместо -a.

andreyex@destroyer:~/toto$ ls -A | grep "^\."
.hidden-file
.hid_dir
.member.csv

 

Здесь все еще есть небольшая проблема. Хотя вы можете видеть их в отдельных строках, вы не можете различить, файл это или каталог.

Если вы этого хотите, есть другой способ добиться этого.

 

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

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

ls -ld .*

 

Читать  Как использовать плагины для ZSH

Это покажет следующий результат для примера здесь:

drwxrwxr-x  3 andreyex andreyex  4096 Jun 30 10:38 .
drwxr-x--- 28 andreyex andreyex  4096 Jun 29 15:15 ..
-rw-rw-r--  1 andreyex andreyex 41145 May 27 15:24 .hidden-file
drwxrwxr-x  2 andreyex andreyex  4096 Jun 30 10:38 .hid_dir
-rw-rw-r--  1 andreyex andreyex 12721 Jun  3 09:41 .member.csv

 

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

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

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

 

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

ls -ld .!(|.)

 

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

Вы получаете желаемый результат прямо сейчас:

-rw-rw-r-- 1 andreyex andreyex 41145 May 27 15:24 .hidden-file
drwxrwxr-x 2 andreyex andreyex  4096 Jun 30 10:38 .hid_dir
-rw-rw-r-- 1 andreyex andreyex 12721 Jun  3 09:41 .member.csv

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

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

ls -ld .* |grep -v ^d

 

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

andreyex@destroyer:~/toto$ ls -ld .* 
drwxrwxr-x  3 andreyex andreyex  4096 Jun 30 10:38 .
drwxr-x--- 28 andreyex andreyex  4096 Jun 29 15:15 ..
-rw-rw-r--  1 andreyex andreyex 41145 May 27 15:24 .hidden-file
drwxrwxr-x  2 andreyex andreyex  4096 Jun 30 10:38 .hid_dir
-rw-rw-r--  1 andreyex andreyex 12721 Jun  3 09:41 .member.csv
andreyex@destroyer:~/toto$ ls -ld .* |grep -v ^d
-rw-rw-r--  1 andreyex andreyex 41145 May 27 15:24 .hidden-file
-rw-rw-r--  1 andreyex andreyex 12721 Jun  3 09:41 .member.csv

 

Читать  Команда cd в Linux. Примеры использования

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

Если вы можете придумать другое решение, поделитесь им в разделе комментариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**Commentor's URL Will be Followed

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close