Suponha que eu tenho um diretório /dir
dentro do qual existem 3 links simbólicos para outros diretórios
/dir/dir11
, /dir/dir12
e /dir/dir13
. Eu quero listar todos os arquivos dir
, incluindo os de dir11
, dir12
e dir13
.
Para ser mais genérico, desejo listar todos os arquivos, incluindo aqueles nos diretórios que são links simbólicos. find .
, ls -R
etc param no link simbólico sem navegar neles para listar mais.
Respostas:
A
-L
opção dels
realizar o que você deseja. Desreferencia os links simbólicos.Portanto, seu comando seria:
Você também pode fazer isso com
A
-follow
opção direciona a localização para seguir links simbólicos para diretórios.No Mac OS X, use
como
-follow
foi preterido.fonte
-follow
- e ele disse que couln't encontrar a pastaollow
find -L .
- Eu estava tendo o mesmo problema que @ S.Matthew_Englishfollow
apenas caminhos de arquivo (caminho completo para arquivo) e não caminho de diretório, como posso fazer isso?E a árvore ?
tree -l
seguirá links simbólicos.Disclaimer : Eu escrevi este pacote.
fonte
ls
. Também é mais fácil colar ao redor.-type f
significa que ele exibirá arquivos reais (não links simbólicos)-follow
significa que ele seguirá os links simbólicos do diretório-print
fará com que ele exiba os nomes dos arquivos.Se você deseja exibir um tipo ls, pode fazer o seguinte
fonte
ls -L
opçãoUsando ls:
de 'man ls':
Ou, usando find:
Na página de manual de localização:
Se você achar que deseja seguir apenas alguns links simbólicos (como talvez apenas os de nível superior que você mencionou), consulte a opção -H, que segue apenas os links simbólicos que você passa para ela na linha de comando.
fonte
Eu sabia que
tree
era apropriado, mas não tinha árvore instalada. Então, eu tenho uma alternativa bem próxima aquifonte
fonte
-L
desreferencia os links simbólicos. Isso também tornará impossível ver quaisquer links simbólicos para arquivos - eles se parecerão com o arquivo apontado.fonte
caso deseje imprimir todo o conteúdo do arquivo :
find . -type f -exec cat {} +
fonte