Analizar lsnunca es una idea maravillosa, pero lo que intentaste hubiera funcionado si usaras el ancla ^para indicar el comienzo del partido. ls -la | grep '^\.'
devnull
3
No, no lo hará, el nombre del archivo no es el comienzo de la línea con la bandera -l. ls -la | awk '$9 ~ /^\./'será.
Si desea analizar la lssalida, debe agregarla ^al comienzo de la expresión regular y no usar la -lopción. El uso -lhace que cada salida de línea comience con información de permiso de archivo o carpeta, no con el nombre del archivo o carpeta. Entonces deberías usar así:
Esto mostrará una lista de todos los archivos cuyo nombre comienza con un punto y que no son .ni ...
Tenga en cuenta que si desea canalizar la salida de lsto grep(que, como lo señala devnull , nunca es una buena idea), asegúrese de usar \lso command lsporque si lstiene un alias para mostrar la salida en color (como en Debian, por ejemplo) , su salida contiene secuencias de escape ANSI para crear una salida de color, que se disparará grepsi su patrón está anclado al comienzo de la línea.
Se puede utilizar -A(en vez de -a) de ignorar ., ...
OJFord
@ OJFord + -Adifiere de los -adirectorios en los que lsdesciende, pero ambos son (igualmente) ignorados e inútiles para los nombres especificados en la línea de comando con -defecto. Además, si lstiene un alias, --color=auto entonces la tubería está bien; solo --color=alwayso --colorcausa problemas.
dave_thompson_085
0
La solución de val0x00ff es realmente buena, pero olvida los directorios ocultos.
Si desea archivos ocultos y directorios ocultos , sin. y ..:
Su sugerencia falla en VMware ESXi (no enumere archivos ni directorios) y también falla en Linux (con maxdepth> 1, también enumera todos los archivos en un directorio que comienza con a.), Pero esto funciona tanto en Linux como en ESXi: find . \( -type f -o -type d \) -name '\.*' -print; aplicar maxdepthdonde sea necesario.
Jeroen Wiert Pluimers
0
Debajo de uno es muy compacto y admite muchas variantes
1) Mostrar archivos ocultos, directorios y subdirectorios
find . | grep "^\./\."
2) Mostrar solo directorios y subdirectorios ocultos
find . -type d | grep "^\./\."
3) Mostrar archivos ocultos solo en directorios actuales y subdirectorios
find . -type f | grep "^\./\."
4) Mostrar archivos y directorios ocultos en la carpeta actual
find .-maxdepth 1-type f -name '\.*'-print
find .-maxdepth 1 \( -type f -o -type d \) -name '\.*'-print
Por supuesto, puede usar diferentes maxdepthvalores o eliminarlo por completo. Muy útil si desea explorar entre directorios ( -type d) o archivos regulares ( type f) o ambos, y combinarlos con otras funciones como:
Vi la respuesta anterior, no es duplicado, y definitivamente "ls -a" y "ls -Ad" no tienen el mismo significado. "-a" significa que todos los archivos / directorios incluidos comienzan con "." -A significa listar todo excepto "." , ".." y el contenido del directorio.
ls
nunca es una idea maravillosa, pero lo que intentaste hubiera funcionado si usaras el ancla^
para indicar el comienzo del partido.ls -la | grep '^\.'
ls -la | awk '$9 ~ /^\./'
será.Respuestas:
ls -ld .*
Hará lo que quieras.fuente
Debe funcionar si desea enumerar todos los archivos ocultos en la jerarquía de directorios.
fuente
Si desea analizar la
ls
salida, debe agregarla^
al comienzo de la expresión regular y no usar la-l
opción. El uso-l
hace que cada salida de línea comience con información de permiso de archivo o carpeta, no con el nombre del archivo o carpeta. Entonces deberías usar así:O puedes hacer con
printf
bash incorporado:Si usa
zsh
, puede usar:fuente
Aquí hay otras dos formas de encontrar solo archivos ocultos.
o
Use
-maxdepth
para especificar qué tan lejos desea buscar en el árbol de directorios.fuente
Una mejora en la respuesta de Flup :
Esto mostrará una lista de todos los archivos cuyo nombre comienza con un punto y que no son
.
ni..
.Tenga en cuenta que si desea canalizar la salida de
ls
togrep
(que, como lo señala devnull , nunca es una buena idea), asegúrese de usar\ls
ocommand ls
porque sils
tiene un alias para mostrar la salida en color (como en Debian, por ejemplo) , su salida contiene secuencias de escape ANSI para crear una salida de color, que se dispararágrep
si su patrón está anclado al comienzo de la línea.fuente
-A
(en vez de-a
) de ignorar.
,..
.-A
difiere de los-a
directorios en los quels
desciende, pero ambos son (igualmente) ignorados e inútiles para los nombres especificados en la línea de comando con-d
efecto. Además, sils
tiene un alias,--color=auto
entonces la tubería está bien; solo--color=always
o--color
causa problemas.La solución de val0x00ff es realmente buena, pero olvida los directorios ocultos.
Si desea archivos ocultos y directorios ocultos , sin. y ..:
fuente
find . \( -type f -o -type d \) -name '\.*' -print
; aplicarmaxdepth
donde sea necesario.Debajo de uno es muy compacto y admite muchas variantes
1) Mostrar archivos ocultos, directorios y subdirectorios
find . | grep "^\./\."
2) Mostrar solo directorios y subdirectorios ocultos
find . -type d | grep "^\./\."
3) Mostrar archivos ocultos solo en directorios actuales y subdirectorios
find . -type f | grep "^\./\."
4) Mostrar archivos y directorios ocultos en la carpeta actual
find . -maxdepth 1 | grep "^\./\."
fuente
Puedes probar:
Por supuesto, puede usar diferentes
maxdepth
valores o eliminarlo por completo. Muy útil si desea explorar entre directorios (-type d
) o archivos regulares (type f
) o ambos, y combinarlos con otras funciones como:(p. ej., última hora de modificación, basada en el ejemplo de @piroux , completado por @ jeroen-wiert-pluimers )
fuente
Puedes probar :
^ indica que es el comienzo del contenido con regexp
fuente