什么是Windows命令行“ dir / s / b”的Unix(QNX)等效版本


9

问题Linux在Linux上相当于DOS“ dir / s / b filename”吗?接近,但结束时会为所有这样的命名文件名播放文件查找操作。

但是,我正在寻找与Windows计算机上的目录进行目录内容比较的比较,并将其与QNX框上应类似构建的目录进行比较。我想在两台机器上运行目录枚举命令,执行一些文本文件操作以转换路径定界字符和根驱动器,以及如何将它们转换为兼容格式以获取有见地的差异。

我可以使用生成其中所有子目录和文件的文件夹清单dir /b /s,并获得格式化为一堆路径的输出...

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

我可以看到dir /s变为ls -R,但是如何获得/B与路径输出格式等效的格式?


6
答案与其他问题相同,只是省略了该-name选项,因此不会按名称过滤。
Barmar

Answers:


14

find可能会给您您所需要的一切。由于它比ls单独执行更多的测试,因此开销更大,但是如果您希望输出中包含路径信息,则这可能是实现此目的的最简单方法。

如果你要比较两个系统,那么你或许应该做一些文字第一和交换编辑\/,并删除C:前缀。然后对列表进行排序并用于diff发现更改。sed将在这里成为您的朋友。如果需要的话,还可以发表评论。


18

没有一个标志ls可以满足您的要求,但是您可以使用其他几种工具来实现,最简单的方法是(可能)find

find .

2
或简单地find ,默认表达式是.
user4556274 '17

3
真正。无论如何,我认为在Q / A帖子中包含默认值是一个好习惯,因为默认值可能并不对所有人都显而易见。
Bruno9779

19
@ user4556274可能适用于GNU find,但是其他实现遵循POSIX标准,并且需要目录操作数。
库沙兰丹

5

树-如果

-i不缩进-f打印路径


有趣的是,向您的答案显示一些控制台输出;我无法从我的QNX盒中找到该命令-bash: tree: command not found
jxramos

我在手机上无法测试,但在linux.die.net/man/1/tree
Stephen C

1
它来自mama.indstate.edu/users/ice/tree,并打包为tree许多Linux发行版中的软件包。
deltab

tree是检查目录结构的首选工具,但默认情况下,在大多数系统上未安装该工具。
Bruno9779 '17

5

为了获得实际路径的前缀(假设这很重要),请执行

find "$(pwd)"

如果您使用的是类似bash的shell,则无需调用外部命令。find "${PWD}"应该足够了。但是不确定是否可以在QNX上使用。
CVn

@MichaelKjörling:好吧,如果您想要符号链接路径而不是真实路径...
Joshua

是的,这可能取决于每种语言的确切语义。不要忘记,至少GNU bash既有内置的,pwd也有外部的/ bin / pwd,它们在处理符号链接所到达目录的方式上也有所不同。
CVn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.