Поиск по сайту:
Свернись в себя самого (Марк Аврелий).

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

01.07.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

 

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

Читать  Как обновить вашу систему Kali Linux

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

 

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

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

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

 

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

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

 

Читать  Как добавить сообщение о фиксации Git?

Вы отображаете как скрытые файлы, так и каталоги, а затем отфильтровываете записи, начинающиеся с 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

 

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

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

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

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



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

**ссылки nofollow

Это может быть вам интересно


Рекомендуемое
Почему сигары Backwoods такие дорогие Сигары Backwoods - это высококачественные…

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

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