![不同的结果 OS X/Linux 与“find PATH -mount \( -type f -o -type d \) -print0 | LC_ALL=C sort --zero-termerated > OUTPUT.txt”](https://linux22.com/image/59223/%E4%B8%8D%E5%90%8C%E7%9A%84%E7%BB%93%E6%9E%9C%20OS%20X%2FLinux%20%E4%B8%8E%E2%80%9Cfind%20PATH%20-mount%20%5C(%20-type%20f%20-o%20-type%20d%20%5C)%20-print0%20%7C%20LC_ALL%3DC%20sort%20--zero-termerated%20%3E%20OUTPUT.txt%E2%80%9D.png)
该命令是我用来比较文件的脚本的一部分:
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
不会出错。