ls -S / ls -r命令行(Bash)上的排序没有意义

时间:2015-10-28 00:34:39

标签: bash shell terminal ls

我在命令行上浏览本教程。 http://lifehacker.com/5633909/who-needs-a-mouse-learn-to-use-the-command-line-for-almost-anything

它提到我可以输入ls -S来按文件大小对结果进行排序(我假设它意味着从大到小),我可以输入ls -r来按照另一种方式对结果进行排序(从最小到最大)

我立即在我的主目录上尝试了这些命令,但在两种情况下,相同的文件tweets.csv是列出的第一个文件。

由于tweets.csv可能既是最大的文件又是最小的文件,我很困惑。

如果它在我的主目录中有帮助,我有一堆其他文件夹,以及其他文件类型,例如另一个.csv,.txt,.py,.bash和.sh。我也在运行OSX El Captain版本10.11.1

那么为什么不是-S和ls -r给我相反的结果呢?我误解了他们吗?

我很感激任何帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

-r会撤消指定的排序顺序。如果您未指定任何订单,则按名称对文件进行排序。 ls -r按名称对Z进行排序,Z到A.要按大小从最大到最小排序,请使用

ls -Sr

添加-l也会显示文件大小,因此您可以验证文件是否正确排序。

答案 1 :(得分:1)

两个选项需要两个字母:

ls -rS

您可以添加long来获取:

ls -lrS

订单通常没有重要性,因此-lrS-rSl的含义相同,因为将它们拆分为不同的值:

ls -r -S -l

即,每个选项都由其存在激活。

您可以按日期排序,并使用-r来反转输出:

ls -lc
ls -rlc