gawk '/^.{9}$/{print FILENAME}' RS='\0' *
Elegí 9 caracteres, porque los 8 caracteres y el carácter de nueva línea al final de la línea = 9 caracteres en total. Si necesita estrictamente 8 caracteres con la nueva línea incluida, debe usar el número 8 en el patrón.
Pruebas
Tengo cuatro archivos en la carpeta de prueba:
$ tail -n +1 -- *
==> 11_chars <==
zzzzzzzzzz
==> 5_chars <==
zzzz
==> 7_chars <==
zzzzzz
==> 9_chars <==
zzzzzzzz
Salida
$ gawk '/^.{9}$/{print FILENAME}' RS='\0' *
9_chars
Единственное «особенное» в файле или каталоге с ведущей точкой в имени, таком как .myfile
, заключается в том, что он не будет отображаться в выводе ls
по умолчанию. Он также не будет соответствовать шаблону подстановки имен файлов, который явно не соответствует именам файлов, начинающимся с точки.
Предполагается, что каталог изначально пуст:
$ touch.myfile # this creates an empty hidden file
$ ls # this will output nothing
$ echo * # this will echo a *
*
Эти файлы обычно называют «скрытыми», хотя они скрыты только от ls
и шаблонов подстановки имен файлов, а не скрыты в смысле «секретных», вредоносных, полностью необнаружимых или нечитаемых. другими (, что зависит от разрешения файла и разрешения его родительской папки (s )).
Любой может создавать скрытые файлы, нужно просто поставить точку в начале имени. Тот факт, что файл скрыт, ничего не говорит о том, как он был создан (явно пользователем или при запуске какой-либо программы ). Некоторые приложения создают каталоги со скрытыми именами (для хранения конфигураций, файлов кэша и т. д. ), а другие создают скрытые файлы.
Например,
Оболочка bash
часто создает .bash_history
в вашем домашнем каталоге, содержащем команды, которые вы ввели в командной строке (, чтобы вы могли легко вызвать их в более позднем сеансе без повторного ввода ). Оболочка также будет использовать .bash_profile
и .bashrc
в вашем домашнем каталоге при запуске. Если эти файлы существуют, вполне вероятно, что они были скопированы в вашу учетную запись при ее создании.
Если вы используете SSH, то, скорее всего, у вас есть скрытый каталог с именем .ssh
в вашем домашнем каталоге. Этот каталог содержит открытые и закрытые ключи SSH, а также может содержать некоторый файл конфигурации. Этот каталог не должен быть доступен другим. Маловероятно, что вы создали этот каталог вручную.
Многие настольные утилиты хранят свои файлы конфигурации где-то в .config
в вашем домашнем каталоге, а файлы кэша — в .cache
. Опять же, маловероятно, что вы создали эти каталоги вручную.
Файлы конфигурации в домашних каталогах пользователей (и в других местах )часто скрываются таким образом, чтобы не загромождать вывод ls
.
Чтобы просмотреть все файлы в каталоге, включая скрытые файлы, используйте опцию -a
или -A
сls
(при использовании -A
не будут отображаться имена .
и ..
, которые присутствуют в любом Каталог Unix ).
$ ls -a
. .. .myfile
$ ls -A
.myfile
В оболочке bash
, *
и других шаблонах подстановки оболочки не будут соответствовать скрытым именам. Чтобы заставить их это сделать, включите параметр оболочки dotglob
с помощью shopt -s dotglob
.
$ echo *
*
$ shopt -s dotglob
$ echo * # the * now matches a filename, so it is replaced by it
.myfile