![Como listo arquivos com caminhos completos no Linux?](https://rvso.com/image/1345272/Como%20listo%20arquivos%20com%20caminhos%20completos%20no%20Linux%3F.png)
No Linux, existe um equivalente Dir /s /a /b
onde o caminho completo e o nome do arquivo estão listados? Sou novo no Linux e, sem GUI, quero ter uma ideia da estrutura do que está no disco rígido.
Responder1
Use o find
comando. Por padrão, ele listará recursivamente todos os arquivos e pastas descendentes do seu diretório atual, com o caminho completo (relativo).
Se você quiser o caminho completo, use:
find "$PWD"
Se você quiser o caminho relativo, use:
find .
Aqui $PWD
está uma variável que contém o diretório de trabalho atual.
Algumas opções:
- Se você quiser restringi-lo apenas a arquivos ou pastas, use
find "$PWD" -type f
oufind -type d
, respectivamente. - Se você quiser que ele pare em uma determinada profundidade de diretório, use
find "$PWD" -maxdepth 2
, por exemplo.
LerEncontrando arquivospara um manual extenso sobre GNU find
, que é o padrão no Linux.
Responder2
Eu tive essa mesma pergunta hoje. Encontrei um comando chamado "realpath", aqui está um exemplo:
$ realpath ~/.bashrc
/home/harleygolfguy/.bashrc
Responder3
Solução Linux:
$ pwd
/home/victoria
$ find $(pwd) -maxdepth 1 -type f -not -path '*/\.*' | sort
/home/victoria/new
/home/victoria/new1
/home/victoria/new2
/home/victoria/new3
/home/victoria/new3.md
/home/victoria/new.md
/home/victoria/package.json
/home/victoria/Untitled Document 1
/home/victoria/Untitled Document 2
$ find . -maxdepth 1 -type f -not -path '*/\.*' | sed 's/^\.\///g' | sort
new
new1
new2
new3
new3.md
new.md
package.json
Untitled Document 1
Untitled Document 2
Notas:
.
: pasta atual- remova
-maxdepth 1
para pesquisar recursivamente -type f
: encontre arquivos, não diretórios (d
)-not -path '*/\.*'
: não retorne.hidden_files
sed 's/^\.\///g'
: remova o prefixo./
da lista de resultados
Responder4
Para completar, o ls -lR /
comando listará o nome de cada arquivo, o tipo de arquivo, bits de modo de arquivo, número de links físicos, nome do proprietário, nome do grupo, tamanho e carimbo de data / hora de cada arquivo (que você tem permissão para acessar) da raiz diretório para baixo. ( l
é para uma lista longa, ou seja, todas essas informações, R
é para recorrer aos diretórios, /
começa na raiz do sistema de arquivos.)
Existem vários parâmetros para aproximar as informações de saída dir /S /A
, mas tenho que admitir que não consigo descobrir como traduzir o arquivo /B
.
Para obter informações úteis, eu tentaria: ls -lAFGR --si /
onde
- l = lista longa (como mencionado acima)
- A = quase todos os arquivos (não inclui . e .. em cada diretório, mas mostra todos os arquivos ocultos)
- F = mostrar indicador de arquivo, (um
*
para arquivos exe,/
para diretórios,@
para links simbólicos,|
para FIFOs,=
para soquetes e>
para portas) - G = não mostra informações do grupo (remova se quiser ver)
- R = lista recursivamente diretórios (subdiretórios) e
- --si = mostra o tamanho do arquivo em formato legível por humanos, por exemplo, formato 1M (onde 1M = 1000B)
ls
pode fornecer uma sinopse mais fácil de ler de diretórios e arquivos dentro desses diretórios, já que find
a saída de pode ser difícil de verificar quando os arquivos estão contidos em estruturas de diretórios muito longas (abrangendo várias linhas). O corolário é que cada arquivo é listado por si só (ou seja, sem informações de caminho de diretório) e você pode ter que voltar algumas páginas/telas para encontrar os diretórios em que um arquivo específico está localizado.
Além disso, find não contém as informações /A no comando DIR. Eu sugeri uma série de atributos no comando que mostrei (que coincidentemente mostram a utilidade extra que você obtém do Linux em um determinado sistema proprietário), mas se você ler as páginas man
e em , você será capaz de ver o que incluir ou não.info
ls