如何按图形窗口中显示的顺序打印mac终端中文件夹中的文件名?

lizhe

更新:我按照评论说的那样将区域设置LC_COLLATE更改zh_CN.UTF-8en_US.UTF-8但是似乎不起作用。

05〜07_11-06-49.png http://7xpvdr.com1.z0.glb.clouddn.com/05~07_11-06-49.png

ls -1不起作用05〜07_11-05-51.png http://7xpvdr.com1.z0.glb.clouddn.com/05~07_11-05-51.png

我在Mac上使用以下bash代码:

for file in *
do 
echo $file 
done

该顺序与graphic窗口中的顺序不匹配,因此如何按照图形窗口显示的顺序打印文件名?

像下面的照片

图文窗顺序使用默认的顺序没有在这里:1.txt a.txt order.sh Ub.tx

终端订单: 1.txt Ub.tx a.txt order.sh

05〜06_12-53-21.png http://7xpvdr.com1.z0.glb.clouddn.com/05~06_12-53-21.png

mklement0

您可能会看到一方面是OS X的经典Mac OS传统与另一方面的BSD Unix传统之间的文化冲突,后来又采用了:

  • OS X Finder不区分大小写地对文件名进行排序

  • Unixls实用程序和Bash的路径名扩展(globbing;例如*
    区分大小写地对文件名进行排序-这在类似Unix的系统上很常见。

假定默认的OS X文件系统HFS +区分大小写,则Finder的行为是有道理的。

更新:OP发现以下技术仅能近似Finder的行为,因为Finder应用了附加的排序逻辑,文件名中包含数字数字(无论位置如何)嵌入的(十进制)数字序列都是按数字排序的在终端中通常
没有提供lssort提供相同行为的选项选项。如果您知道某种方法,请告诉我。

以下命令创建名称带有嵌入式数字的测试文件;比较在终端的输出与在搜索的顺序,这将有所不同:
touch {1,2,10}.txt a{1,2,10}.txt {1,2,10}z.txt «{1,2,10}».txt; ls -1f;
例如,在终端中您会看到1.txt 10.txt 2.txt(纯粹是词法排序),而Finder会将它们显示为1.txt 2.txt 10.txt(按数字排序应用于嵌入的数字)。


ls像Finder一样工作,请添加-f选项-- ls -f,但是请注意,它始终会输出隐藏的(-.前缀)文件,包括...为了弥补这一点,您可以使用grep

 ls -f | grep -v '^\.'  # lists filenames sorted case-insensitively, with no hidden files

注意的真正目的ls-f办法是抑制排序,这意味着它是由该系统以什么顺序文件中列出。在OS X上,您碰巧会获得不区分大小写的排序,但这并非在所有平台上都是如此。例如,在具有ext4文件系统的Ubuntu上,不保证特定的顺序。


对于通配*,相比之下,没有直接的修复,但可以使用从接近约翰Zwinck的回答

printf '%s\n' * | sort -f

sort-f选项执行不区分大小写的排序。

为了在循环中稳健地使用它,需要精心构造的while循环来代替for

while IFS= read -r file; do
  echo "$file"
done < <(printf '%s\n' * | sort -f)

如果您需要使用嵌入的换行符来处理文件名,请使用以下变体:

while IFS= read -d '' file; do
  echo "$file"
done < <(printf '%s\0' * | sort -f)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何按照图形窗口中显示的顺序打印mac终端中文件夹中的文件名?

来自分类Dev

如何从本地文件夹插入图像,其中文件名与 CollectionViewSource 中的项目匹配

来自分类Dev

Bash:如何在文件夹中打印第n个文件的文件名

来自分类Dev

Bash:如何在文件夹中打印第n个文件的文件名

来自分类Dev

如何使用DOS命令从文件夹中文件列表的文件名中删除单个字符?

来自分类Dev

如何使用DOS命令从文件夹中文件列表的文件名中删除单个字符?

来自分类Dev

如何从文件夹中打印几个随机文件名?

来自分类Dev

为下载的文件选择“在文件夹中显示”操作时,如何防止打开终端窗口?

来自分类Dev

在文件夹中文件名的开头添加序号

来自分类Dev

批处理逐行列出txt文件中文件夹中的文件名

来自分类Dev

如何更改文件夹cygwin中的文件名?

来自分类Dev

如何列出文件夹中的文件名

来自分类Dev

如何使用python显示文件夹中Word文档的文件名?

来自分类Dev

窗口批处理文件-无法在指定的文件夹中获取文件名

来自分类Dev

bat文件更改文件夹中文件的日期时间,今天的日期时间从文本列表中读取文件名

来自分类Dev

如何根据文件名将文件名排序到文件夹中

来自分类Dev

从可绘制文件夹中获取顺序文件名

来自分类Dev

终端中文件夹内文件夹的路径

来自分类Dev

如何在“编辑视图”中显示文件名?文件名存储在图像文件夹中,也存储在数据库中

来自分类Dev

使用任何 QT 小部件打印特定文件夹中的文件名

来自分类Dev

如何在macOS的Sublime Text中的同一窗口中打开文件和文件夹?

来自分类Dev

如何在Mac OSX终端中显示文件的完整路径,包括完整文件名?

来自分类Dev

如何检查文件夹中文件名中的元素是否包含字符串数组列表中的字符串名称?

来自分类Dev

列出每个文件夹中文件名与模式匹配的文件数

来自分类Dev

如何遍历文件夹中的所有文件(如果文件名未知)?

来自分类Dev

如何从特定文件夹中提取文件,文件名存储在python列表中?

来自分类Dev

如何根据文件名部分将文件分类到子文件夹中?

来自分类Dev

如何将文件批量移动到与每个文件名对应的文件夹中?

来自分类Dev

如何从文件夹中文件的名称中删除字符?

Related 相关文章

  1. 1

    如何按照图形窗口中显示的顺序打印mac终端中文件夹中的文件名?

  2. 2

    如何从本地文件夹插入图像,其中文件名与 CollectionViewSource 中的项目匹配

  3. 3

    Bash:如何在文件夹中打印第n个文件的文件名

  4. 4

    Bash:如何在文件夹中打印第n个文件的文件名

  5. 5

    如何使用DOS命令从文件夹中文件列表的文件名中删除单个字符?

  6. 6

    如何使用DOS命令从文件夹中文件列表的文件名中删除单个字符?

  7. 7

    如何从文件夹中打印几个随机文件名?

  8. 8

    为下载的文件选择“在文件夹中显示”操作时,如何防止打开终端窗口?

  9. 9

    在文件夹中文件名的开头添加序号

  10. 10

    批处理逐行列出txt文件中文件夹中的文件名

  11. 11

    如何更改文件夹cygwin中的文件名?

  12. 12

    如何列出文件夹中的文件名

  13. 13

    如何使用python显示文件夹中Word文档的文件名?

  14. 14

    窗口批处理文件-无法在指定的文件夹中获取文件名

  15. 15

    bat文件更改文件夹中文件的日期时间,今天的日期时间从文本列表中读取文件名

  16. 16

    如何根据文件名将文件名排序到文件夹中

  17. 17

    从可绘制文件夹中获取顺序文件名

  18. 18

    终端中文件夹内文件夹的路径

  19. 19

    如何在“编辑视图”中显示文件名?文件名存储在图像文件夹中,也存储在数据库中

  20. 20

    使用任何 QT 小部件打印特定文件夹中的文件名

  21. 21

    如何在macOS的Sublime Text中的同一窗口中打开文件和文件夹?

  22. 22

    如何在Mac OSX终端中显示文件的完整路径,包括完整文件名?

  23. 23

    如何检查文件夹中文件名中的元素是否包含字符串数组列表中的字符串名称?

  24. 24

    列出每个文件夹中文件名与模式匹配的文件数

  25. 25

    如何遍历文件夹中的所有文件(如果文件名未知)?

  26. 26

    如何从特定文件夹中提取文件,文件名存储在python列表中?

  27. 27

    如何根据文件名部分将文件分类到子文件夹中?

  28. 28

    如何将文件批量移动到与每个文件名对应的文件夹中?

  29. 29

    如何从文件夹中文件的名称中删除字符?

热门标签

归档