La question Quel est l'équivalent Linux de DOS "dir / s / b filename"? se rapproche, mais il termine la lecture d'une opération de recherche de fichier pour tous ces noms de fichiers nommés.
Je cherche cependant à faire une comparaison de contenu de répertoire avec un répertoire sur une machine Windows et à le comparer à ce qui devrait être un répertoire de construction similaire sur une boîte QNX . Je veux exécuter la commande d'énumération de répertoire sur les deux machines, faire une manipulation de fichier texte pour convertir les caractères délimitant le chemin et les lecteurs racine et quoi ne pas les mettre dans un format compatible pour un diff perspicace.
Je peux générer un manifeste de dossier de tous les sous-répertoires et fichiers qu'il contient dir /b /s
, et obtenir une sortie formatée sous la forme d'un tas de chemins ...
c:\Temp>dir /b /s
c:\Temp\Subfolder1
C:\Temp\Subfolder1\File1.txt
C:\Temp\Subfolder1\File2.txt
...
Je peux voir dir /s
devient ls -R
, mais comment obtenir l' /B
équivalent de la mise en forme de la sortie du chemin?
-name
option, donc elle ne filtre pas par nom.Réponses:
find
peut vous donner tout ce dont vous avez besoin. Il a un peu plus de surcharge car il effectue plus de tests quels
seul, mais si vous voulez les informations de chemin dans la sortie, cela peut être le moyen le plus simple d'y parvenir.Si vous allez comparer deux systèmes, vous devriez probablement faire d'abord quelques modifications de texte, échanger
\
avec/
et supprimer leC:
préfixe. Triez ensuite les listes et utilisezdiff
pour repérer les modifications.sed
sera votre ami ici. Faites un suivi avec un commentaire si vous le souhaitez aussi.la source
Il n'y a pas d'indicateur pour
ls
faire ce que vous demandez, mais vous pouvez le faire avec plusieurs autres outils, le plus simple étant (peut-être)find
:la source
find
L'expression par défaut est.
find
, mais d'autres implémentations suivent la norme POSIX et nécessitent un opérande de répertoire.arbre -si
-i pour ne pas indenter -f pour imprimer le chemin
la source
-bash: tree: command not found
tree
dans un certain nombre de distributions Linux.tree
est mon outil de choix pour inspecter la structure du répertoire, mais il n'est pas installé par défaut sur la plupart des systèmes.Pour obtenir le chemin réel préfixé (en supposant que c'est important), faites
la source
find "${PWD}"
devrait suffire. Je ne sais pas si cela fonctionne sur QNX, cependant.pwd
/ externe / bin / pwd, qui diffèrent également dans la façon dont ils gèrent les répertoires atteints par les liens symboliques.