不同的结果 OS X/Linux 与“find PATH -mount \( -type f -o -type d \) -print0 | LC_ALL=C sort --zero-termerated > OUTPUT.txt”

不同的结果 OS X/Linux 与“find PATH -mount \( -type f -o -type d \) -print0 | LC_ALL=C sort --zero-termerated > OUTPUT.txt”

该命令是我用来比较文件的脚本的一部分:

find test/ -mount \( -type f -o -type d \) -print0 \
    | LC_ALL=C sort --zero-terminated > OUTPUT.txt

// test/ is the PATH

OUTPUT.txt在 Ubuntu/Linux 上看起来像这样:

测试/.test/#.pdf.test/$.pdf.test/+.pdf.test/.recycle.pdf.test/0.pdf.test/1.pdf.test/9.pdf.test/A. pdf�测试/Aa.pdf�测试/Z.pdf�测试/a.pdf�测试/aA.pdf�

OUTPUT.txt在 OS X 上看起来像这样:

测试/�测试//#.pdf�测试//$.pdf�测试//+.pdf�测试//.recycle.pdf�测试//0.pdf�测试//1.pdf�测试//9 .pdf�测试//A.pdf�测试//Aa.pdf�测试//Z.pdf�测试//a.pdf�测试//aA.pdf�

OS X 似乎很喜欢斜线,但这使得它无可比拟。我该如何解决这个问题?

答案1

替换find test/find test/.;这是等效的并且应该给出相同的输出。

find test/或者,不使用,而是使用find -H test.该选项-H指示find在命令行上跟踪符号链接,如果是目录的符号链接,则test/执行此操作。test唯一的区别是,如果test是悬空符号链接,find test/则会出错,但find -H test不会出错。

相关内容