如何使用`ls`列出linux shell中的文件,因为它们列在相应的文件夹中

时间:2014-01-10 15:43:32

标签: linux bash shell

我有问题。当我在shell中仅使用ls命令时,我的文件列出如下(奇怪):

[HorribleSubs] Fairy Tail - 166 [720p].mkv
[HorribleSubs] Fairy Tail - 16 [720p].mkv
[HorribleSubs] Fairy Tail - 167 [720p].mkv

当我打开我的文件夹时,文件列出如下(首选):

[HorribleSubs] Fairy Tail - 16 [720p].mkv
...
...
[HorribleSubs] Fairy Tail - 166 [720p].mkv
[HorribleSubs] Fairy Tail - 167 [720p].mkv

如何使用ls命令列出shell中的文件,与在相应的文件夹中完全相同。在文件夹中,它按“按名称”排序。

当我输入ls -v时,列表如下:

[HorribleSubs] Fairy Tail - 11 [720p].mkv
[HorribleSubs] Fairy Tail - 12 [720p].mkv
[HorribleSubs] Fairy Tail - 13 [720p].mkv
...
...
[HorribleSubs] Fairy Tail - 175 [720p].mkv
[Horriblesubs] Fairy Tail - 01  [720p].mkv
[Horriblesubs] Fairy Tail - 02 [720p].mkv
[Horriblesubs] Fairy Tail - 03 [720p].mkv
[Horriblesubs] Fairy Tail - 04 [720p].mkv
[Horriblesubs] Fairy Tail - 05 [720p].mkv
[Horriblesubs] Fairy Tail - 06 [720p].mkv
[Horriblesubs] Fairy Tail - 07 [720p].mkv
[Horriblesubs] Fairy Tail - 08 [720p].mkv
[Horriblesubs] Fairy Tail - 09 [720p].mkv
[Horriblesubs] Fairy Tail - 10 [720p].mkv

3 个答案:

答案 0 :(得分:1)

您可以使用ls -v进行“自然排序”

从手册页:

  

-v文本中的自然类型(版本)数字

答案 1 :(得分:1)

使用sort实用程序,用户还可以选择指定要用于排序的起始列。所以这个命令:

ls | sort -k 1.5n

将使用1st列和5th字段的开头进行排序。假设您的文件都以单词file开头,则应使用该单词后面的数字按自然顺序排序

输出:

file01.txt
file11.txt
file16.txt
file116.txt
file167.txt

对于你的新案例(Fairy Tail - #[720p] .mkv ...),请尝试以下命令:

ls | sort -k4n

答案 2 :(得分:0)

您总是可以将任何命令的输出传递给UNIX sort实用程序,然后根据需要对其进行排序。例如:

% ls | sort 
file16.txt
file166.txt
file167.txt