鸟哥Linux-第七章、Linux 档案与目录管理

来源:互联网 发布:北京秦淮数据有限公司 编辑:程序博客网 时间:2024/05/05 19:12

1. 目录与路径

1.1 相对路径与绝对路径

  • 绝对路径:路径的写法『一定由根目录 / 写起』,例如: /usr/share/doc 这个目录。
  • 相对路径:路径的写法『不是由 / 写起』,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: 『cd ../man』这就是相对路径的写法啦!相对路径意指『相对于目前工作目录的路径!』

    目录的相关操作:
    这里写图片描述


1.2 目录的相关操作: cd, pwd, mkdir, rmdir

底下我们就来谈一谈几个常见的处理目录的指令吧:

  • cd (变换目录)
    这里写图片描述
    没有加上任何路径,也还是代表回到自己家目录的意思喔!

  • pwd (显示目前所在的目录)
    这里写图片描述
    所以,加上 pwd -P 的选项后,会不以连结文件的数据显示,而是显示正确的完整路径啊!

  • mkdir (建立新目录)
    这里写图片描述
    仔细看上面的权限部分,如果没有加上 -m 来强制设定属性,系统会使用默认属性。

    选项与参数 含义 -m 配置文件案的权限喔!直接设定,不需要看预设权限 (umask) 的脸色~ -p 帮助你直接将所需要的目录(包括上层目录)递归建立起来!
  • rmdir (删除『空』的目录)
    这里写图片描述
    利用 -p 这个选项,立刻就可以将 test1/test2/test3/test4 一次删除~ 不过要注意的是,这个 rmdir 仅能『删除空的目录』喔!

    选项与参数 含义 -p 连同上层『空的』目录也一起删除

1.3 关于执行文件路径的变量: $PATH

经过第六章FHS癿说明后,我们知道查阅文件属性的指令ls完整文件名为:/bin/ls(这是绝对路径), 那你会不会觉得很奇怪:『为什么我可以在任何地方执行/bin/ls这个指令呢? 』 为什么我在任何目录下输入 ls 就一定可以显示出一些讯息而不会说找不到该 /bin/ls 指令呢? 这是因为环境变量 PATH 的帮助所致呀!

当我们在执行一个指令的时候,举例来说『ls』好了,系统会依照PATH的设定去每个PATH定义的目录下搜寻文件名为ls的可执行文件, 如果在PATH定义的目录中含有多个文件名为ls的可执行文件,那么先搜寻到的同名指令先被执行!

现在,请下达『echo $PATH』来看看到底有哪些目录被定义出来了? echo有『显示、印出』的意思,而 PATH 前面加的 $ 表示后面接的是变量,所以会显示出目前的 PATH !

这里写图片描述
PATH(一定是大写)这个变量的内容是由一堆目录所组成的,每个目录中间用冒号(:)来隔开, 每个目录是有『顺序』之分的。

2. 档案与目录管理

2.1 档案与目录的检视: ls

选项与参数 含义 -a 全部的档案,连同隐藏档( 开头为 . 的档案) 一起列出来(常用) -A 全部的档案,连同隐藏档,但不包括 . 不 .. 这两个目录 -d 仅列出目录本身,而不是列出目录内的档案数据(常用) -f 直接列出结果,而不进行排序 (ls 预设会以档名排序!) -F 根据档案、目录等信息,给予附加数据结构,例如: *:代表可执行文件; /:代表目录; =:代表 socket 档案; |:代表 FIFO 档案; -h 将档案容量以人类较易读的方式(例如 GB, KB 等等)列出来; -i 列出 inode 号码; -l 长数据串行出,包含档案的属性与权限等等数据;(常用) -n 列出 UID 与 GID 而非使用者与群组的名称 (UID与GID会在账号管理提到!) -r 将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小; -R 连同子目录内容一起列出来,等于该目录下的所有档案都会显示出来; -S 以档案容量大小排序,而不是用档名排序; -t 依时间排序,而不是用档名。 –color=never 不要依据档案特性给予颜色显示; –color=always 显示颜色 –color=auto 让系统自行依据设定来判断是否给予颜色 –full-time 以完整时间模式 (包含年、月、日、时、分) 输出 –time={atime,ctime} 输出 access 时间或改变权限属性时间 (ctime) 而非内容变更时间 (modification time)

范例一:将家目录下的所有档案列出来(含属性与隐藏文件)
这里写图片描述

范例二:承上题,不显示颜色,但在文件名末显示出该文件名代表的类型(type)
这里写图片描述

范例三:完整的呈现档案的修改时间 (modification time)*
这里写图片描述
请仔细看,上面的『时间』字段变了喔!变成较为完整的格式。 一般来说, ls -al 仅列出目前短格式的时间,有时不会列出年份, 藉由 –full-time 可以查阅到比较正确的完整时间格式啊!

2.2 复制、删除与移动: cp, rm, mv

要复制档案,请使用 cp (copy) 这个指令即可~不过, cp 这个指令的用途可多了~ 除了单纯的复制之外,还可以建立连结档 (就是快捷方式啰),比对两档案的新旧而予以更新, 以及复制整个目录等等的功能呢!至于移动目录与档案,则使用 mv (move), 这个指令也可以直接拿来作更名 (rename) 的动作喔!至于移除吗?那就是 rm (remove) 这个指令啰~底下我们就来瞧一瞧先~

  • cp (复制档案或目录)
选项与参数 含义 -a 相当于 -pdr 的意忠,至于 pdr 请参考下列说明;(常用) -d 若来源文件为链接文件的属性(link file),则复制链接文件属性而非档案本身; -f 为强制(force)的意思,若目标档案已经存在且无法开启,则移除后再尝试一次; -i 若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(常用) -l 进行硬式连结(hard link)的连结档建立,而非复制档案本身; -p 连同档案的属性一起复制过去,而非使用默认属性(备份常用); -r 递归持续复制,用于目录的复制行为;(常用) -s 复制成为符号链接文件 (symbolic link),亦即『快捷方式』档案; -u 若 destination 比 source 旧才更新 destination !

范例一:用root身份,将家目录下的 .bashrc 复制到 /tmp 下,并更名为 bashrc
这里写图片描述
重复作两次动作,由于 /tmp 底下已经存在 bashrc 了,加上 -i 选项后, 则在覆盖前会询问使用者是否确定!可以按下 n 或者 y 来二次确认呢!

范例二:变换目录到/tmp,并将/var/log/wtmp复制到/tmp并观察属性:
这里写图片描述
注意上面的特殊字体,在不加任何选项的情况下,档案的某些属性/权限会改变; 这是个很重要的特性!要注意喔!还有,连档案建立的时间也不一样了! 那如果你想要将档案的所有特性都一起复制过来该怎办?可以加上 -a 喔!如上图所示。

范例三:复制 /etc/ 这个目录下的所有内容到 /tmp 底下
这里写图片描述
如果是目录则不能直接复制,要加上 -r 的选项

2.3 取得路径的文件名与目录名称

3. 档案内容查阅:

3.1 直接检视档案内容: cat, tac, nl

3.2 可翻页检视: more, less

3.3 资料撷取: head, tail

3.4 非纯文本档: od

4. 档案与目录的默认权限与隐藏权限

4.1 档案预设权限:umask

4.2 档案隐藏属性: chattr, lsattr

4.4 档案特殊权限:SUID, SGID, SBIT, 权限设定

4.3 观察文件类型:file

5. 指令与档案的搜寻:

5.1 脚本文件名的搜寻:which

5.2 档案档名的搜寻:whereis, locate, find

6. 极重要!权限与指令间的关系:

0 0
原创粉丝点击