问题Linux 中相当于 DOS 的“dir /s /b 文件名”是什么?很接近,但最终会为所有此类命名文件名执行文件查找操作。
然而,我希望与 Windows 计算机上的目录进行目录内容差异比较,并将其与 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
等效的路径输出格式?
答案1
没有一个标志ls
可以满足您的要求,但您可以使用其他几种工具来完成它,最简单的是(可能)find
:
find .
答案2
find
可能会给你你所需要的一切。它的开销要多一些,因为它比ls
单独执行更多的测试,但如果您希望输出中包含路径信息,那么这可能是实现这一目标的最简单方法。
如果您要比较两个系统,那么您可能应该首先进行一些文本编辑并与 交换\
,/
并删除C:
前缀。然后对列表进行排序并用于diff
发现更改。sed
将成为你在这里的朋友。如果您也想要这个,请跟进评论。
答案3
树-如果
-i 不缩进 -f 打印路径
答案4
为了获得实际路径前缀(假设这很重要),请执行以下操作
find "$(pwd)"