¿Cuál es el equivalente de Unix (QNX) de la línea de comandos de Windows "dir / s / b"


9

La pregunta ¿Cuál es el equivalente de Linux de "dir / s / b filename" de DOS? se acerca pero termina reproduciendo una operación de búsqueda de archivos para todos los nombres de archivos nombrados.

Sin embargo, estoy buscando hacer una comparación de diferencias de contenido de directorio con un directorio en una máquina Windows y compararlo con lo que debería ser un directorio construido de manera similar en un cuadro QNX . Quiero ejecutar el comando de enumeración de directorios en ambas máquinas, hacer algo de manipulación de archivos de texto para convertir caracteres delimitadores de ruta y unidades raíz y qué no hacer que tengan un formato compatible para una diferencia perspicaz.

Puedo generar un manifiesto de carpeta de todos los subdirectorios y archivos que contiene dir /b /s, y obtener la salida formateada como un montón de rutas ...

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

Puedo ver se dir /sconvierte ls -R, pero ¿cómo obtengo el /Bequivalente del formato de salida de ruta?


66
La respuesta es la misma que en la otra pregunta, excepto que omite la -nameopción, por lo que no se filtra por nombre.
Barmar

Respuestas:


14

findpuede darte todo lo que necesitas. Tiene un poco más de sobrecarga ya que realiza más pruebas que lssolo, pero si desea la información de ruta en la salida, esta puede ser la forma más sencilla de lograrlo.

Si vas a comparar dos sistemas, entonces probablemente deberías hacer algo de edición de texto primero e intercambiar \con /, y eliminar el C:prefijo. Luego ordena las listas y úsalas diffpara detectar los cambios. sedSerá tu amigo aquí. Haz un seguimiento con un comentario si quieres esto también.


18

No hay una bandera lsque haga lo que le pidas, pero puede lograrlo con varias otras herramientas, la más fácil (posiblemente) find:

find .

2
o simplemente find La expresión predeterminada es.
user4556274

3
Cierto. De todos modos, creo que es una buena práctica incluir valores predeterminados en las publicaciones de preguntas y respuestas, ya que pueden no ser obvios para todos.
Bruno9779

19
@ user4556274 Puede ser para GNU find, pero otras implementaciones siguen el estándar POSIX y requieren un operando de directorio.
Kusalananda

5

árbol -si

-i para no sangrar -f para imprimir ruta


Interesante, muestre algunos resultados de la consola a su respuesta; No puedo encontrar ese comando desde mi caja QNX-bash: tree: command not found
jxramos

Estoy en mi teléfono, así que no puedo probarlo, pero está en la página de manual
Stephen C

1
Es de mama.indstate.edu/users/ice/tree , y está empaquetado como treeen varias distribuciones de Linux.
deltab

treees mi herramienta de elección para inspeccionar la estructura de directorios, pero no está instalada por defecto en la mayoría de los sistemas.
Bruno9779

5

Para obtener el prefijo de la ruta real (suponiendo que sea importante), haga

find "$(pwd)"

Si está utilizando un shell tipo bash, no es necesario invocar un comando externo; find "${PWD}"debería ser suficiente. Sin embargo, no estoy seguro si eso funciona en QNX.
un CVn

@ MichaelKjörling: Bueno, si quieres la ruta del enlace simbólico en lugar de la ruta real ...
Joshua

Es cierto que podría depender de la semántica exacta de cada uno. No olvide que al menos GNU bash tiene una función incorporada y pwdtambién externa / bin / pwd, que también difieren en la forma en que manejan los directorios alcanzados por los enlaces simbólicos.
un CVn
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.