Isso irá percorrer recursivamente o /path/to/folder
diretório e listar apenas os links simbólicos:
ls -lR /path/to/folder | grep ^l
Se sua intenção é seguir os links simbólicos também, você deve usar seu find
comando, mas deve incluir a -L
opção; de fato, a find
página de manual diz:
-L Follow symbolic links. When find examines or prints information
about files, the information used shall be taken from the prop‐
erties of the file to which the link points, not from the link
itself (unless it is a broken symbolic link or find is unable to
examine the file to which the link points). Use of this option
implies -noleaf. If you later use the -P option, -noleaf will
still be in effect. If -L is in effect and find discovers a
symbolic link to a subdirectory during its search, the subdirec‐
tory pointed to by the symbolic link will be searched.
When the -L option is in effect, the -type predicate will always
match against the type of the file that a symbolic link points
to rather than the link itself (unless the symbolic link is bro‐
ken). Using -L causes the -lname and -ilname predicates always
to return false.
Então tente o seguinte:
find -L /var/www/ -type l
Provavelmente isso funcionará: Encontrei na find
página de manual este diamante: se você estiver usando a -type
opção, precisará alterá-lo para a -xtype
opção:
l symbolic link; this is never true if the -L option or the
-follow option is in effect, unless the symbolic link is
broken. If you want to search for symbolic links when -L
is in effect, use -xtype.
Então:
find -L /var/www/ -xtype l
find -L /var/www/ -xtype l
). Usar em-xtype
vez de-type
deve fazer o truque em sua descoberta. Boa sorte!ls -laR /path/to/folder | grep ^l
se você também quiser processo "escondido" dot pastas ...-xtype
não está disponível.find . -type l
parece estar verificando recursivamente.Um comando, sem tubos
Explicação:
find
do diretório atual em.
diante, todas as referências de-type l
tinta e listar-ls
em detalhes. Claro e simples...Expandindo esta resposta, aqui estão mais alguns
find
comandos relacionados a links simbólicos :Encontre links simbólicos para um destino específico
Observe que
link_target
é um padrão que pode conter caracteres curinga.Encontre links simbólicos quebrados
A
-L
opção instruifind
a seguir os links simbólicos, a menos que esteja quebrado.Encontre e substitua links simbólicos quebrados
Mais encontrar exemplos
Mais
find
exemplos podem ser encontrados aqui: https://hamwaves.com/find/fonte
find
tem uma-ls
opção. Portanto,find . -type l -ls
deve ser o equivalente ao acima.find -lname '*/dir/*' -printf '%P -> %l\n'
. Vale ressaltar que link_target é um padrão.find
já parece recursivamente por padrão:fonte
find
recursa por padrão? Eu estou supondo que não;)-L
bandeira para encontrar sem sorte - algum palpite?Para ver apenas os links simbólicos, você pode usar
enquanto se você quiser ver também quais arquivos eles segmentam, basta adicionar um ls
fonte
Essa é a melhor coisa que encontrei até agora - mostra os links simbólicos no diretório atual, recursivamente, mas sem segui-los, exibidos com caminhos completos e outras informações:
outputs é mais ou menos assim:
fonte
O que faço é criar um script no meu diretório bin que seja como um alias. Por exemplo, eu tenho um script chamado lsd ls -l | grep ^ d
você poderia fazer um lsl ls -lR | grep ^ l
Basta chmod-los + x e você está pronto para ir.
fonte