O que é o equivalente Unix (QNX) da linha de comando do Windows “dir / s / b”

9

A questão Qual é o equivalente do Linux? do DOS “dir / s / b nome_do_arquivo”? chega perto mas acaba tocando uma operação de localização de arquivo para todos os nomes de arquivo nomeados.

No entanto, estou procurando fazer uma comparação de diff de conteúdo de diretório com um diretório em uma máquina Windows e compará-la com o que deve ser um diretório construído de forma 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 delimitadores de caminho e unidades raiz e que não para obtê-los em um formato compatível para um diff perspicaz.

Eu posso gerar um manifesto de pasta de todos os subdiretórios e arquivos com dir /b /s , e 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
...

Eu posso ver dir /s se tornando ls -R , mas como obtenho o /B da formatação de saída do caminho?

    
por jxramos 17.02.2017 / 19:48

4 respostas

14

find pode fornecer tudo o que você precisa. Ele tem um pouco mais de sobrecarga, pois realiza mais testes do que ls sozinho, mas se você quiser as informações do caminho na saída, essa pode ser a maneira mais simples de conseguir isso.

Se você for comparar dois sistemas, provavelmente deverá editar primeiro o texto e trocar \ por / e remover o prefixo C: . Em seguida, classifique as listas e use diff para identificar as alterações. sed será seu amigo aqui. Follow-up com um comentário, se você quiser isso também.

    
por 17.02.2017 / 19:56
18

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

find .
    
por 17.02.2017 / 19:56
5

árvore -if

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

    
por 17.02.2017 / 22:48
5

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

find "$(pwd)"
    
por 18.02.2017 / 00:27

Tags