如何使Windows的dir命令输出类似于Linux上的ls命令?

5

dir 命令是在Windows中列出当前位置下有哪些文件的命令,就像Linux中的 ls 命令一样。但是它们默认显示的信息不同。以下是Windows中 dir 的示例输出之一:

2016-06-30  03:47 PM    <DIR>          .
2016-06-30  03:47 PM    <DIR>          ..
2015-06-04  03:49 PM            12,292 .DS_Store
2016-06-10  05:10 PM                11 .gitattributes
2016-06-30  03:47 PM               318 .gitignore
2015-09-25  10:09 AM                 0 .gitmodules
2016-08-03  11:25 AM    <DIR>          app
2015-08-10  05:07 PM             2,502 artisan
2016-06-30  03:47 PM    <DIR>          bootstrap
2016-06-30  03:47 PM             1,361 composer.json
2016-03-17  06:00 PM            82,167 composer.lock
2015-08-10  05:07 PM               147 CONTRIBUTING.md
2016-06-30  03:47 PM             1,310 error.log
2015-08-10  05:07 PM               583 phpunit.xml
2016-09-05  05:37 PM    <DIR>          public
2015-08-10  05:07 PM             1,816 readme.md
2016-06-30  03:47 PM        13,993,746 requests.log
2015-08-10  05:07 PM               538 server.php
2016-06-30  04:55 PM    <DIR>          vendor
              13 File(s)     14,096,791 bytes
               6 Dir(s)  778,356,928,512 bytes free

它能完成任务,但是它使用一行来显示一个文件的信息,并且显示了我不需要的信息。通常我只想快速了解文件夹中的内容,而不关心文件何时被更改。在Linux中,ls命令的输出结果如下:

app         artisan bootstrap  composer.json compser.lock CONTRIBUTING.md error.log 
phpunit.xml public  readme.xml public        readme.md    requests.log    server.php 
vendor 

这种方式更加紧凑,代码量更少。对于我来说,可读性更高,因为它占用的行数更少,前面的命令也保留在屏幕上。Windows下的dir命令就像在Linux下不断使用ls -l

那么问题来了,有没有办法更改Windows中dir命令的默认设置以使其像Linux中的ls一样工作?或者至少每次都有一个可选项呢?


下载Cygwin并将其bin目录添加到您的PATH环境变量中,然后您就可以直接使用ls命令了。 - Neil Locketz
这解决了问题,但你不觉得有点过度了吗?我并不经常使用命令行,每天只用几分钟来完成一些必须在命令行中完成的工作。如果没有其他选择,那这将是我的最终选择。 - cytsunny
啊,@cytsunny,这对你来说没有意义。我以前试图让Windows适合我使用时曾这么做过。现在我已经放弃了Windows并转向Linux。对于我来说这是有意义的,因为我一半的时间都在命令行中。 - Neil Locketz
对我来说,如果你经常使用命令行,那么双启动Linux、使用Linux虚拟机或者直接切换到Linux是比使用Cygwin更好的选择。当我在家使用Ubuntu时(我只在工作中使用Windows),我感觉他们在命令行方面的支持要比Windows好得多,特别是那些与系统设置相关的任务,使用命令行更好。在Windows中,我真的只会坚持使用GUI界面。 - cytsunny
1
使用GNU ls将*nix的"ls"命令带到Windows系统 - DavidPostill
3个回答

8
经过详细阅读dir命令的文档后,答案是dir /Wdir /D。它们唯一的区别就是文件排序方式不同。dir /D是列优先,dir /W是行优先。
参考:http://www.computerhope.com/dirhlp.htm

1
在Windows上运行带有参数/?的命令或控制台应用程序会得到与在Linux上运行带有-h--help的控制台应用程序相同的输出,即获取命令/控制台应用程序的帮助信息。在命令提示符窗口中执行dir /?来尝试它。您可以阅读有关使用命令__DIR__的裸格式获取的信息,该格式在批处理脚本中最常用,因为它仅列出找到的文件/文件夹名称而不包括路径,或者在使用路径时也可以使用/S - Mofi
谢谢您的建议。我更喜欢使用/D,因为/B仍然存在一个文件占据整行的问题。此外,在宽模式下,我认为在文件夹上加方括号也有助于区分文件和文件夹。 - cytsunny

6

使用裸格式(没有标题信息或摘要,只有信息本身)。

在您的命令提示符上键入dir /b。这就像终端上的ls命令。


1
您也可以组合选项,例如dir /D/O:GN(在此情况下,按列列出文件,首先是括号中的目录,然后按名称排序常规文件)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接