完整的文件名包括:目录名称与文件名称,完整文件名最长可以达到4096个字符,那么怎么知道哪个是文件名还是目录名?其实就是利用斜线(/)来分辨的,取得文件名或者目录名称,一般的用途应该是在写程序的时候用来判断的。
下面来简单了解一下basename 与dirname 的用途:
(1)文件内容查阅:
在《Linux --- 文件与目录管理(一)》中提到的都只是显示文件的属性或权限,或者是移动与复制一个文件或目录而已,那么如果我们要查阅一个文件的内容时,最常用的显示文件内容的命令是 cat 、more、less 了,下面先来总结一下这些命令吧
cat (concatenate) 直接查看文件内容
# 在Linux 是以 $ 为断行字符,而在windows 则是以 ^MS 为断行字符 #
主要的功能是将一个文件的内容连续的显示出来,如果加上 -n 的话,则每一行前面还会加上行号!如果你的文件内容的行数超过 40 行以上,就不方便用 cat 了,用 more 或者是 less 来执行比较好,如果是一般的dos文件时,就需要特别留意一下奇怪的符号了,例如断行与 [ tab ]等要显示出来,就得使用 - A 之类的参数了!
tac 反向列示
tac 刚好是将 cat 反过来写,所以它的功能就跟 cat 相反,cat 是将第一行到最后一行连续显示在屏幕上,而 tac 则是将最后一行到第一行反向在屏幕上显示出来。
nl 添加行号打印
列出 /etc/profile 的内容,注意看,这个文件第二行为空白行(没有任何字符),无论是否为空行都列出行号!
如果行号前面自动补上 0 呢
自动在自己字段的地方补上 0 了,预设字段是六位数,如果想要改成5位数呢
这样就变成仅有5位数了,其实 nl 可以将输出的文件内容自动的加上行号!,其结果与 cat -n 有点不太一样,nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等功能
(2)可翻页检视:前面提到 cat 、tac 、nl 等都是一次性的将数据显示到屏幕上,还有进行一页一页翻动查看的命令,那就是 more 和 less
more 一页一页翻动
在运行 more 这个程序时,你有几个按键可以按的:
less 一页一页翻动
less 的用法比起 more 又更有弹性,在使用 more 的时候,我们并没有办法向前 ,只能往后看,但使用 less 时就可以使用[pageup] [pagedown]等按键的功能来往前往后翻看文件,在 less 里面还可以向下搜寻或者向上搜寻,可以输入的指令有:
查看文件内容还可以进行搜索,less 还有很多功能,详细使用方式可以使用 man less 查询一下
(3)资料撷取:我们可以将输出的资料做一个简单的撷取,那就是取出前面(head)和取出后面(tail)文字的功能。要注意的是:head 和 tail 都是以行为单位来进行数据撷取的。
head 取出前面几行
参数 -n:后面接数字,代表显示几行的意思
head 的英文意思就是[ 头 ],就是显示一个文件的前几行,如果没有加上 -n 参数时,预设只显示10行。有head(头)自然就有tail(尾),tail 的用法跟 head 的用法差不多类似,只是显示的是后面几行而已
tail 取出后面几行
参数 -n:后面接数字,代表显示几行的意思
如果我要显示 /etc/profile 的第6行到第10行呢,这里就需要涉及到管道(|)命令了
(4)od 非纯文字文件
利用这个命令,可以将 data file 或是 binary file 的内容数据读出来,虽然读出来的数值预设是非文字文件,有可能是16进制的数值来显示的,,不过我们还是可以通过 -t c 的参数将数据内的字符以 ASCII 类型的字符来显示,这个指令可以将 binary file 的内容做一个大致的输出。
(5)touch 修改文件时间与新建文件
在介绍 ls(list)命令时,每个文件在Linux底下都会记录三个主要的变动时间,那么三个时间是哪三个呢
在默认情况下,ls 显示出来的是该文件的 mtime ,也就是这个文件内容上次被改动的时间
文件的时间很重要,如果文件的时间误判的话,可能会导致某些程序无法顺利的运行,那如果有一个文件的时间来自未来(比如GMT时间),那该如果让文件的时间变成现在的就用 touch 命令
新建一个 hello 空文件,这个文件大小是 0 ,在默认状态下,如果 touch 后面有接文件,则该文件的三个时间(atime/ctime/mtime)都会更新为目前的时间,如果文件不存在,则会主动新建一个空文件
将时间调整为3天前,本来是20日的,变成17日了(atime/mtime),不过 ctime 并没有跟着改变
将日期修改为2019/07/19 12:29 注意看日期 atime 与 mtime 都改变了,但是 ctime 则是记录目前的时间
通过 touch 这个命令,我们可以轻易的修改文件的日期和时间,并且也可以新建一个空文件,不过要注意的是,即使我们复制一个文件所有的属性时,也没办法复制 ctime 这个属性!ctime 可以记录这个文件最近的状态(status)被改变的时间,我们平时看的文件属性中比较重要的还是 mtime 这个属性。
touch 这个命令最常被使用的情况是:①建立一个空文件 ②将某个文件日期修改为当前日期(mtime 与 atime)