目录与路径:由路径(PATH)引出相对路径和绝对路径的概念:
相对路径:一定从根目录 / 写起的路径,例如:/usr/share/doc 这个目录
绝对路径:不是从根目录 / 写起的路径,例如:由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法,相对路径意指:相对于目前工作目录的路径!
说明:对于文件的正确性来说,绝对路径的正确度要比较好,虽然绝对路径的写法比较麻烦,但是可以肯定这个写法绝对不会有问题,如果在程序中使用相对路径,则可能由于你执行的工作环境不同导致一些问题的发生。
(1)先认识几个常见的出来目录的命令吧
cd:切换目录 pwd:显示当前目录
mkdir:新建目录 rmdir:删除空目录
cd 是Change Directory的缩写,这是用来改变工作目录的命令,目录名称与 cd命令之间存在一个空格。
pwd 是Print Working Directory的缩写,显示当前工作目录的命令
pwd 有一个 -P 的参数,它可以让我们取得正确的目录名称,而不是以连结文件的路径来显示的。
mkdir 是 make directory 的缩写,这是用来新建目录的命令
参数: - m:设定文件的权限,直接设定,不需要看预设权限
- p:帮助你直接将所需要的目录递归建立起来
rmdir 删除空的目录
在 mkdir 里面有 - p 参数表示递归创建目录,在 rmdir 里面也有 -p 参数表示递归删除空目录 。
如果将所有目录下的东西都杀掉呢?! 这个时候就必须使用 rm -rf text 了,不过这条命令比 rmdir 危险很多。
关于执行文件路径的变量:$PATH
在提过相对路径和绝对路径之后,为什么我们可以在任何地方执行 /bin/ls 这条命令呢?为什么我可以直接执行 ls 就一定可以显示出一些讯息而不是找出该 /bin/ls 命令呢? 这是因为环境变量 PATH 的帮助所致! 当我们在执行一个命令的时候,系统会按照 PATH 的设定去每个 PATH 定义的路径下搜寻执行文件,先搜寻找的命令先被执行,输入 echo $PATH 命令,echo 有显示、打印的意思,而 PATH 前面加的 $ 表示后面接的是变量,所以就会显示出目前的 PATH 了!
/bin 在 PATH 的设定之中,所以自然就可以找到 ls 了! PATH 对于执行文件来说是很重要的变量,它主要用来规范命令搜寻的目录,而每个目录是有顺序的,每个目录中间以冒号[:] 来分隔,就如同上面范例中看到的。
文件与目录的检索:ls(list)
我们之前一直用到的 -l 这个长字节显示数据内容,以及将隐藏文件也一起列出来的 -a 参数等等
不显示颜色,但在文件名末尾显示出该文件名代表的类型(type)
完整的呈现文件的修改时间 *(modification time)
复制、移动和删除:cp,rm,mv
复制文件使用 cp(copy),除了复制文件之外还可以复制快捷键,以及复制整个目录等功能。
移动文件或目录使用 mv(move),这个命令也可以直接拿来做更名的操作。
删除文件或目录使用 rm(remove)
重复两次动作,由于 /tmp 文件夹里面以及存在hello_text 了,加上 -i 参数在覆盖前会询问使用者是否确定!可以按下 n 或者 y
如果不想要询问,可以加上 -f 这个参数来强制直接覆盖!
将 /var/log/wtmp 复制到 ~/ 下,在不加任何参数的情况下,文件的所属者会改变,连权限也跟着改变了
如果你想要的将文件的所有特性都一起复制过来,可以加上 -a 参数!
复制 /etc 这个目录下的所有内容到 /tmp 目录下,如果是目录则不能直接复制,要加上 -r 参数!
注意: -r 是可以复制目录的,但是文件与目录的权限会被改变,所以也可以利用 cp -a /etc /tmp 来实现此目的!
那个 wtmp_slink 是由 -s 的参数造成的,建立的是一个快捷方式,至于那个 wtmp_hlink 建立这个文件后,wtmp 与 wtmp_hlink 所有的参数都一样,只是第二栏的 link 数改变成为 2 了
这个 -u 的特性是在目标文件与源文件有差异时才会复制的,所以比较常用于备份的工作当中。
上面,将 wtmp_slink 复制成为 wtmp_slink_2 ,原本复制的是连结文件,但却将连结文件的实际文件也复制过来了,也就是说,如果没有加上任何参数时,复制的是源文件,而非连结文件的属性!若要复制连结文件的属性,就要使用 -d 或者 -a 参数了。
rm(remove) 删除文件或目录
参数
-f:就是force的意思,强制移除
-i:互动模式,在删除前会询问使用者是否该动作
-r:递归删除,最常用在目录的删除
用 touch 命令新建一个文件 texting ,用 rm 命令删除时,如果加上 -i 参数就会主动询问,如果不询问就加 -f 参数!
删除一个不为空的目录,将 wtmp文件复制到 text目录之后,用 rmdir命令然后提示删除失败,
rm 命令相当于 dos 下的 del 命令,这里注意的是,通常在Linux系统下为了怕误删文件,所以很多distribution 都已经预设有 -i 这个参数,-i 是指每个文件被删除之前都会让使用者确认一次,以预防误删文件!如果你确定该目录不要了,那么使用 rm -rf 来循环删除时不错的方式!可以参考 man rm 查看更多使用方法。
mv 移动文件与目录、或更名
参数
-f:force 强制的意思,强制直接移动而不询问
-i:若目标文件(destination)已经存在时,就会询问是否覆盖
-u:若目标文件已经存在,且source 比较新才会更新(update)
将 hello_text 文件移动到目录 text 中,将目录 texting 更名为 test