我有一个 cron 作业,除其他外,它会将目录递归 ls 到文件中。这与我创建的另一个文件进行比较,据说该文件包含相同目录的相同列表。我的问题是,当我生成用于比较的版本时,我得到按不区分大小写的顺序列出的文件。当 cron 作业运行时,其列表按区分大小写的顺序显示。
我怎样才能让这两个以同样的方式出现(我不在乎哪一个)?我对 ls 的调用是
/bin/ls -lR --time-style=long-iso *
;据我所知,这两种设置都没有设置 LC_COLLATE 。
答案1
通过显式强制应用程序使用某种排序顺序可以避免排序问题。您可以通过运行而不是有问题的程序来检查当前区域设置locale
,并比较不同调用情况的输出。
可以通过在命令行中设置LC_COLLATE
/来强制排序顺序:LC_ALL
LC_COLLATE=C ls ...
LC_ALL=C ls ...