ls 在 cron 作业期间给我不同的排序顺序

ls 在 cron 作业期间给我不同的排序顺序

我有一个 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 ...

相关内容