巧用tree命令导出文件目录递归详情

缘由

我清楚的记得在我读研二的时候有一次我帮老师收“海外名师课堂”的作业,有一名巴基斯坦的学生,想要老师的课件,我当时给他说这个不被允许,随便给外国留学生拷贝课件原则上是不允许的,我是这样认为的。但是他说这个是经过了我们老师的同意,听到这我就给他拷贝了课件,不然好像显得我们巴铁关系也不怎么铁,一个课件都不拷贝。但是同时他希望我能给他提供课件的目录概览信息,他当时说的英文,但是我听出来了,并想都没想就回答:“OK,I’ll send you later.”

回到教研室,我就开始琢磨这个事儿,因为课件很大,目录很深,并且内容也是非常多的。靠人为梳理目录关系肯定是不行的,我就想起来以前用过的tree命令,在网上搜罗了一下,还真的有类似的功能样例,可以直接输出指定目录的递归文件概览详情。

二话不说,先看命令:

`# 切换至目标目录, /d是切换盘符的意思

W:\Google_Download为目标根目录

cd /d W:\Google_Download

生成目录树,在W盘下会生成一个tree.txt的文件

tree /f > W:\tree.txt`

不过说真的,Windows的cmd命令真是恶心极了,难道就不能向Linux一样,直接cd吗!还非得加个/d参数。

命令执行如下:

image

执行结果如图所示:

image

从上图来看,我们完整的拿到了目标目录W:\Google_Download的文件递归详情。

如果你也有类似的需求,那么这个 命令对你会非常有帮助!省时省力~

tree命令

Linux tree命令用于以树状图列出目录的内容。

执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。

-a 显示所有文件和目录。 -A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。 -C 在文件和目录清单加上色彩,便于区分各种类型。 -d 显示目录名称而非内容。 -D 列出文件或目录的更改时间。 -f 在每个文件或目录之前,显示完整的相对路径名称。 -F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。 -g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。 -i 不以阶梯状列出文件或目录名称。 -L level 限制目录显示层级。 -l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。 -n 不在文件和目录清单加上色彩。 -N 直接列出文件和目录名称,包括控制字符。 -p 列出权限标示。 -P<范本样式> 只显示符合范本样式的文件或目录名称。 -q 用"?"号取代控制字符,列出文件和目录名称。 -s 列出文件或目录大小。 -t 用文件和目录的更改时间排序。 -u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。 -x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。 

使用tree命令如下,经过我的使用,好像Windows OS不完全支持tree命令!

不过在某些情况下,tree命令还是能够帮我们解决一些问题的。

image

image.png

你可能感兴趣的:(巧用tree命令导出文件目录递归详情)