什么是 Unix (QNX) 等价于 Windows 命令行“dir /s /b”

jxr*_*mos 9 ls qnx

问题Linux 相当于 DOS 的“dir /s /b 文件名”是什么?接近,但它最终会为所有此类命名文件名播放文件查找操作。

然而,我希望对 Windows 机器上的目录进行目录内容差异比较,并将其与QNX 机器上类似构造的目录进行比较。我想在两台机器上运行目录枚举命令,做一些文本文件操作来转换路径分隔字符和根驱动器,以及不将它们转换为兼容格式以获得有见地的差异。

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

c:\Temp>dir /b /s
c:\Temp\Subfolder1
C:\Temp\Subfolder1\File1.txt
C:\Temp\Subfolder1\File2.txt
...
Run Code Online (Sandbox Code Playgroud)

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

Bru*_*779 18

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

find .
Run Code Online (Sandbox Code Playgroud)

  • @user4556274 它可能适用于 GNU `find`,但其他实现遵循 POSIX 标准并需要目录操作数。 (19认同)
  • 真的。无论如何,我认为在 Q/A 帖子中包含默认值是一个很好的做法,因为它们可能对每个人都不是很明显。 (3认同)
  • 或者干脆 `find` 默认表达式是 `.` (2认同)

Ed *_*lle 14

find可能会给你你需要的一切。由于它执行的测试比ls单独执行的测试更多,因此它的开销要多一些,但是如果您想要输出中的路径信息,那么这可能是实现该目标的最简单方法。

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


小智 5

树 -if

-i 不缩进 -f 打印路径


Jos*_*hua 5

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

find "$(pwd)"
Run Code Online (Sandbox Code Playgroud)