第六章Linux文件与目录管理

来源:互联网 发布:javascript教程 编辑:程序博客网 时间:2024/06/05 15:30

几个常见的处理目录的指令:

  • cd:变换目录
  • pwd:显示当前目录
  • mkdir:建立一个新的目录
  • rmdir:删除一个空的目录

cd (change directory, 变换目录):

cd ..#返回上层目录cd /home/robin#绝对路径去到robin文件夹cd ./test#相对路径去到当前文件夹下的test文件夹cd #只有cd指令返回当前用户的home目录。

注意:cd 指令后接的一定要是目录,比如上方的test一定要是目录,不能是文件。

pwd (Print Working Directory,显示目前所在的目录)

robin@robin-Latitude-E6330:~$ pwd/home/robin

mkdir (make directory,建立新目录)

[root@study tmp]# mkdir test#建立一名为 test 的新目录[root@study tmp]# mkdir test1/test2/test3/test4mkdir: cannot create directory ‘test1/test2/test3/test4’: No such file or directory# 多层级目录建立直接这样用会报错,需要加上-p选项。[root@study tmp]# mkdir -p test1/test2/test3/test4# 原来是要建 test4 上层没先建 test3 之故!加了这个 -p 的选项,可以自行帮你建立多层目录!

rmdir (删除『空』的目录)

[root@study tmp]# rmdir test <==可直接删除掉,没问题[root@study tmp]# rmdir test1 <==因为尚有内容,所以无法删除!rmdir: failed to remove ‘test1’: Directory not empty[root@study tmp]# rmdir -p test1/test2/test3/test4#同样,层级删除文件夹需要-p选项。

注意:rmdir指令只能删除空文件夹!!!不能有任何其他的文件等。上方的test1234其实也是层层空文件夹。要删除带文件的,需要rm指令。

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

查阅文件属性的指令 ls 完整文件名为:/bin/ls(绝对路径),
但是在使用时,在任何目录下输入 ls 就一定可以显示出一些讯息而不会说找不到该 /bin/ls 指令!这是因为环境变量
PATH 所致!
显示定义的环境变量:

[root@study ~]# echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

当我们在执行一个指令的时候,例如『ls』,系统会依照 PATH 的设定去每个 PATH 定义的目录下搜寻文件名为 ls 的可执行文件, 如果在 PATH 定义的目录中含有多个文件名为 ls 的可执行文件,那么先搜寻到的同名指令先被执行!
PATH(一定是大写)这个变量的内容是由一堆目录所组成的,每个目录中间用冒号(:)来隔开, 每个目录有『顺序』之分。仔细观察可以发现,无论是 root 还是 dmtsai 都有 /bin 或/usr/bin 这个目录在 PATH 变量内,所以就能够在任何地方执行 ls 来找到/bin/ls 执行文件了!

简单说一下自己的理解,并不确定对不对:
指令本质上也是可执行程序,本来运行一个程序应该老老实实的敲上路径,找到它并运行。但是,环境变量提供了一个解决方案就是,我用这个变量事先连接好一堆文件夹,这些文件夹里存放的各种指令(其实也是可执行程序)。这样,我在任何目录下直接敲指令,也能运行,因为PATH自己去连接好的目录里去找了。所以在表面使用上实现了任何目录下都能调用常用的指令。

文件与目录管理

文件与目录的检视: ls:

[root@study ~]# ls [-aAdfFhilnrRSt] 文件名或目录名称..[root@study ~]# ls [--color={never,auto,always}] 文件名或目录名称..[root@study ~]# ls [--full-time] 文件名或目录名称..选项与参数(仅列些常用的,其实还有很多):-a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)-A :全部的文件,连同隐藏档,但不包括 . 与 .. 这两个目录-d :仅列出目录本身,而不是列出目录内的文件数据(常用)-l :长数据串行出,包含文件的属性与权限等等数据;(常用)

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

cp (复制文件或目录)

[root@study ~]# cp [-adfilprsu] 来源文件(source) 目标文件(destination)[root@study ~]# cp [options] source1 source2 source3 .... directory**选项与参数(仅列写常用的):**-a :相当于 -dr --preserve=all 的意思,至于 dr 请参考下列说明;(常用)-i :若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(常用)-p :连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性(备份常用);-r :递归持续复制,用于目录的复制行为;(常用)-s :复制成为符号链接文件 (symbolic link),亦即『快捷方式』文件;

示例:

cp ./hehe.txt ./folder1#将当前文件夹中的hehe.txt文件复制到当前文件夹中的folder1文件夹内。cp ./hehe.txt ./folder1/hehe_copy.txt#将当前文件夹中的hehe.txt文件复制到当前文件夹中的folder1文件夹内。并更名为hehe_copy.txt-i选项用时最好是加上,因为启动交互确认后,会防止误操作导致的覆盖等等问题。-a和-p操作一般用于备份,将文件的属性也一起copy过去。-r为递归操作,用于copy文件夹,不然会报cp: 略过目录。cp ./folder1 ./folder2#将当前文件夹下的folder1复制到当前文件夹下的folder2文件夹内。-s复制为一个快捷方式。用法跟普通默认的一样,只是copy的结果是快捷方式。cp ./hehe.txt ./folder1#在folder1内创建一个hehe.txt文件的快捷方式。会标示此文件为快捷方式。

rm (移除文件或目录)
首先说一下,这个删除是真正的删除,不会估计是否目录为空等等。就是用于删除数据的,所以也比较危险。

[root@study ~]# rm [-fir] 文件或目录选项与参数:-f :就是 force 的意思,忽略不存在的文件,不会出现警告讯息;-i :互动模式,在删除前会询问使用者是否动作-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!例1:删除一个文件:rm ./hehe.txt例2:删除前询问:rm -i hehe.txtrm: remove regular file `hehe.txt'? y例3:用*模糊删除rm -i a*.txt# 删除a开头的txt文件。星号代表的是 0 到无穷多个任意字符!也就是说a1.txt甚至是a10000.txt都能被删掉,不用说对齐位数,因为*就代表一切字符串。另外,-r删除文件夹时,若是root用户,自动加了-i功能,会询问,但是若不是root用户,就不会询问了,直接删掉。

mv (移动文件与目录,或更名)

[root@study ~]# mv [-fiu] source destination[root@study ~]# mv [options] source1 source2 source3 .... directory选项与参数:-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!-u :若目标文件已经存在,且 source 比较新,才会更新 (update)例1:移动文件mv b1.txt test1#将b1.txt移动到test1文件夹2:移动文件并更名mv b1.txt test1/b1_mv.txt3:移动文件夹mv test2 test1#跟文件没区别,直接动就是了。4:文件更名mv test2 test3#将目录下的test2更名为test3,本质相当于向本文件夹移动并更名。当然还可以用rename,后面再说。5:多文件移动mv bashrc1 bashrc2 hehe.txt mvtest2# 注意!如果有多个来源文件或目录,则最后一个目标文件一定是『目录!』# 意为将所有的数据移动到该目录!

强调一遍,在复制删除删除操作式,由于涉及到数据文件的变更,所以尽量用-i选项,来确保不会误操作!!!!

取得一个文件的名称和路径:
这个写程序时经常用。

basename /etc/sysconfig/network#取得了最后面文件的名称~networkdirname /etc/sysconfig/network#取得了文件所在的目录~/etc/sysconfig

6.3 文件内容查阅

查看文件内容:
说白了就是让其在terminal显示文件内容。

cat [-AbEnTv]选项与参数:-n :打印出行号,连同空白行也会有行号例1,显示文档:cat haha.txtim robin#文档内容为一行:im robin2,显示文档并添加行号:cat -n haha.txt     1  im robin#内容前会有行号。

touch指令创建新文件:
touch指令有两个主要的功能就是修改文件时间,和创建文件。暂时先不管修改文件时间了,因为没用到感觉。。。

touch hehe.txt#创建一个hehe.txt文件。

file指令观察文件的类型:

file haha.txt haha.txt: ASCII text
原创粉丝点击