bash Unix ls 命令文件名排序(与默认值不同)

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/7502839/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-18 00:50:36  来源:igfitidea点击:

Unix ls command file name sort (differently than default)

bashsortingls

提问by Chris Muench

Chris-Muenchs-Mac-Book-Pro:database cmuench$ ls -1
database.sql
database_10.0-10.1.sql
database_10.1-10.2.sql
database_10.3-10.4.sql
database_10.4-10.5.sql
database_10.5-10.6.sql
database_10.9-11.0.sql
database_11.0-11.1.sql
database_11.1-11.2.sql
database_11.2-11.3.sql
database_11.6-12.0.sql
database_12.1-12.2.sql
database_12.11-12.12.sql
database_12.12-12.13.sql
database_12.13-12.14.sql
database_12.3-12.4.sql
database_12.4-12.5.sql
database_12.5-12.6.sql
database_12.9-12.10.sql

Is there a way to sort like this?

有没有办法像这样排序?

database.sql
database_10.0-10.1.sql
database_10.1-10.2.sql
database_10.3-10.4.sql
database_10.4-10.5.sql
database_10.5-10.6.sql
database_10.9-11.0.sql
database_11.0-11.1.sql
database_11.1-11.2.sql
database_11.2-11.3.sql
database_11.6-12.0.sql
database_12.1-12.2.sql
database_12.3-12.4.sql
database_12.4-12.5.sql
database_12.5-12.6.sql
database_12.9-12.10.sql
database_12.11-12.12.sql
database_12.12-12.13.sql
database_12.13-12.14.sql

I am on Mac OS X and don't have the sort -V option

我在 Mac OS X 上并且没有 sort -V 选项

回答by Icarus

You can probably sort by time using ls -lrtor some combination like that

您可能可以使用ls -lrt或类似的组合按时间排序

rfor reverse, tfor time

r为反向, t为时间

回答by Bingjun

Try using the sort utility:

尝试使用排序实用程序

ls | sort -n 

回答by FlipMcF

Not sure about Mac OS, but give this a try:

不确定 Mac OS,但试试这个:

 LC_COLLATE=C ls -1