Qual é o equivalente do Unix (QNX) da linha de comando do Windows "dir / s / b"


9

A pergunta Qual é o equivalente do Linux ao DOS "dir / s / b filename"? chega perto, mas acaba reproduzindo uma operação de localização de arquivos para todos esses nomes de arquivos nomeados.

No entanto, estou procurando fazer uma comparação de diferenças de conteúdo de diretório com um diretório em uma máquina Windows e compará-lo com o que deve ser um diretório construído de maneira semelhante em uma caixa QNX . Eu quero executar o comando de enumeração de diretório em ambas as máquinas, fazer alguma manipulação de arquivo de texto para converter caracteres que delimitam o caminho e unidades raiz e o que não deve levá-los a um formato compatível para uma comparação perspicaz.

Eu posso gerar um manifesto de pasta de todos os subdiretórios e arquivos nele contidos dir /b /se obter a saída formatada como um monte de caminhos ...

c:\Temp>dir /b /s
c:\Temp\Subfolder1
C:\Temp\Subfolder1\File1.txt
C:\Temp\Subfolder1\File2.txt
...

Posso ver dir /sse torna ls -R, mas como obtenho o /Bequivalente à formatação da saída do caminho?


6
A resposta é a mesma da outra pergunta, exceto que você deixa de fora a -nameopção, para que ela não seja filtrada por nome.
Barmar

Respostas:


14

findpode lhe dar tudo o que você precisa. Ele tem um pouco mais de sobrecarga, pois realiza mais testes do que lssozinho, mas se você deseja obter as informações do caminho na saída, essa pode ser a maneira mais simples de conseguir isso.

Se você estiver indo para comparar dois sistemas, provavelmente deverá editar primeiro o texto, trocar \com /e remover o C:prefixo. Em seguida, classifique as listas e use-as diffpara identificar as alterações. sedserá seu amigo aqui. Acompanhe um comentário se você também quiser.


18

Não existe um sinalizador para o lsqual você solicita, mas você pode realizá-lo com várias outras ferramentas, sendo a mais fácil (possivelmente) find:

find .

2
ou simplesmente find A expressão padrão é.
user4556274 17/17/17

3
Verdade. De qualquer forma, acho uma boa prática incluir padrões nas postagens de perguntas e respostas, pois eles podem não ser óbvios para todos.
Bruno9779 17/02

19
@ user4556274 Pode ser para o GNU find, mas outras implementações seguem o padrão POSIX e requerem um operando de diretório.
Kusalananda

5

árvore -se

-i para não recuar -f para imprimir o caminho


Interessante, mostre alguma saída do console para sua resposta; Não consigo encontrar o comando de minha caixa de QNX-bash: tree: command not found
jxramos

Estou no meu telefone, então não posso testá-lo, mas está na página de manual
Stephen C

1
É de mama.indstate.edu/users/ice/tree e empacotado como treeem várias distribuições Linux.
Deltab

treeé minha ferramenta de escolha para inspecionar a estrutura de diretórios, mas não é instalada por padrão na maioria dos sistemas.
Bruno9779

5

Para obter o caminho real prefixado (supondo que isso seja importante), faça

find "$(pwd)"

Se você estiver usando um shell semelhante ao bash, não há necessidade de chamar um comando externo; find "${PWD}"deve ser suficiente. Não tenho certeza se isso funciona no QNX, no entanto.
um CVn

@ MichaelKjörling: Bem, se você quiser que o caminho ligação simbólica em vez do caminho real ...
Joshua

É verdade que pode depender da semântica exata de cada um. Não esqueça que pelo menos o GNU bash também possui um pwd/ bin / pwd externo, que também difere na maneira como eles lidam com diretórios alcançados por links simbólicos.
um CVn
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.