Como listo arquivos com caminhos completos no Linux?

Como listo arquivos com caminhos completos no Linux?

No Linux, existe um equivalente Dir /s /a /bonde 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 findcomando. 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 $PWDestá 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 fou find -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 1para 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)

lspode fornecer uma sinopse mais fácil de ler de diretórios e arquivos dentro desses diretórios, já que finda 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 mane em , você será capaz de ver o que incluir ou não.infols

informação relacionada