该命令是我用来比较文件的脚本的一部分:
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
不会出错。