Linux目录和文件——操作目录和文件
linux目录和文件——操作目录和文件
摘要:本文主要学习了linux系统中关于目录和文件的操作。
cd命令
cd命令,是切换目录(change directory)的缩写,用来切换工作目录。
基本语法
1 [root@localhost ~]# cd 相对路径或绝对路径
特殊符号
1 ~:代表当前登录用户的主目录。 2 ~用户名:表示切换至指定用户的主目录。 3 -:代表上次所在目录。 4 .:代表当前目录。 5 ..:代表上级目录。
使用举例
1 [root@localhost ~]# cd / 2 [root@localhost /]# cd /usr/local 3 [root@localhost local]# cd .. 4 [root@localhost usr]# cd /home 5 [root@localhost home]# cd ~ 6 [root@localhost ~]#
pwd命令
pwd命令,是打印工作目录(print working directory)的缩写,功能是显示用户当前所处的工作目录。
基本语法
1 [root@localhost ~]# pwd [选项]
选项
1 -p:显示链接的真实路径。
使用举例
1 [root@localhost ~]# pwd 2 /root 3 [root@localhost ~]#
ls命令
ls命令,是list的缩写,是最常见的目录操作命令,其主要功能是显示当前目录下的内容。
基本语法
1 [root@localhost ~]# ls [选项] 文件或目录
选项
1 -a:显示全部的文件,包括隐藏文件(开头为.的文件)也一起罗列出来,这是最常用的选项之一。 2 -a:显示全部的文件,连同隐藏文件,但不包括.与..这两个目录。 3 -d:仅列出目录本身,而不是列出目录内的文件数据。 4 -f:直接列出结果,而不进行排序,ls默认会以文件名排序。 5 -f:在文件或目录名后加上文件类型的指示符号: 6 *代表可运行文件,/代表目录,=代表socket文件,|代表fifo文件。 7 -h:以人们易读的方式显示文件或目录大小,如1kb、234mb、2gb等。 8 -i:显示inode节点信息。 9 -l:使用长格式列出文件和目录信息,包括属性和权限等等。 10 -n:以uid和gid分别代替文件用户名和群组名显示出来。 11 -r:将排序结果反向输出,比如,若原本文件名由小到大,反向则为由大到小。 12 -r:连同子目录内容一起列出来,等于将该目录下的所有文件都显示出来。 13 -s:按文件容量大小排序,而不是按文件名排序。 14 -t:按时间排序,而不是按文件名排序。 15 --color=never:不依据文件特性给予颜色显示。 16 --color=always:根据文件特性给予颜色显示,默认。 17 --color=auto:让系统自行依据配置来判断是否给予颜色。 18 --full-time:以完整时间模式(包含年、月、日、时、分)输出。 19 --time={atime,ctime}:输出access时间或改变权限属性时间(ctime),而不是内容变更时间(modification time)。
使用举例
1 [root@localhost /]# ls 2 bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var 3 [root@localhost /]# ls -a 4 . .. bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var 5 [root@localhost /]# ls -l 6 总用量 32 7 lrwxrwxrwx. 1 root root 7 7月 3 16:09 bin -> usr/bin 8 dr-xr-xr-x. 4 root root 4096 7月 3 16:17 boot 9 ... 10 drwxr-xr-x. 13 root root 4096 7月 3 16:09 usr 11 drwxr-xr-x. 19 root root 4096 7月 3 16:20 var 12 [root@localhost /]# ls -lh 13 总用量 32k 14 lrwxrwxrwx. 1 root root 7 7月 3 16:09 bin -> usr/bin 15 dr-xr-xr-x. 4 root root 4.0k 7月 3 16:17 boot 16 ... 17 drwxr-xr-x. 13 root root 4.0k 7月 3 16:09 usr 18 drwxr-xr-x. 19 root root 4.0k 7月 3 16:20 var 19 [root@localhost /]# ls -lha 20 总用量 40k 21 dr-xr-xr-x. 17 root root 4.0k 7月 3 16:12 . 22 dr-xr-xr-x. 17 root root 4.0k 7月 3 16:12 .. 23 lrwxrwxrwx. 1 root root 7 7月 3 16:09 bin -> usr/bin 24 dr-xr-xr-x. 4 root root 4.0k 7月 3 16:17 boot 25 ... 26 drwxr-xr-x. 13 root root 4.0k 7月 3 16:09 usr 27 drwxr-xr-x. 19 root root 4.0k 7月 3 16:20 var 28 [root@localhost /]# ls -lha -s 29 总用量 40k 30 drwxr-xr-x. 76 root root 8.0k 7月 6 09:03 etc 31 dr-xr-xr-x. 17 root root 4.0k 7月 3 16:12 . 32 dr-xr-xr-x. 17 root root 4.0k 7月 3 16:12 .. 33 dr-xr-xr-x. 4 root root 4.0k 7月 3 16:17 boot 34 ... 35 dr-xr-xr-x. 365 root root 0 7月 3 16:20 proc 36 dr-xr-xr-x. 13 root root 0 7月 3 16:20 sys 37 [root@localhost /]# ls -lha -t 38 总用量 40k 39 drwxr-xr-x. 21 root root 640 7月 6 09:03 run 40 drwxr-xr-x. 76 root root 8.0k 7月 6 09:03 etc 41 ... 42 drwxr-xr-x. 2 root root 6 8月 12 2015 opt 43 drwxr-xr-x. 2 root root 6 8月 12 2015 srv 44 [root@localhost /]#
mkdir命令
mkdir命令,是make directories的缩写,用于创建新目录,此命令所有用户都可以使用。
基本语法
1 [root@localhost ~]# mkdir [选项] 目录名
选项
1 -m:手动配置所创建目录的权限,而不再使用默认权限。 2 -p:递归创建所有目录。
使用举例
1 [root@localhost home]# ls -l 2 总用量 0 3 [root@localhost home]# mkdir /home/test 4 [root@localhost home]# ls -l 5 总用量 0 6 drwxr-xr-x. 2 root root 6 7月 6 13:55 test 7 [root@localhost home]# mkdir /home/temp/test 8 mkdir: 无法创建目录"/home/temp/test": 没有那个文件或目录 9 [root@localhost home]# mkdir -p /home/temp/test 10 [root@localhost home]# ls -l 11 总用量 0 12 drwxr-xr-x. 3 root root 17 7月 6 13:55 temp 13 drwxr-xr-x. 2 root root 6 7月 6 13:55 test 14 [root@localhost home]#
rmdir命令
基本语法
1 [root@localhost ~]# rmdir [选项] 目录名
选项
1 -p:递归删除空目录。
使用举例
1 [root@localhost home]# ls -l 2 总用量 0 3 drwxr-xr-x. 3 root root 17 7月 6 13:55 temp 4 drwxr-xr-x. 2 root root 6 7月 6 13:55 test 5 [root@localhost home]# rmdir test 6 [root@localhost home]# ls -l 7 总用量 0 8 drwxr-xr-x. 3 root root 17 7月 6 13:55 temp 9 [root@localhost home]# rmdir -p temp/test/ 10 [root@localhost home]# ls -l 11 总用量 0 12 [root@localhost home]#
touch命令
touch命令,创建空文件或者修改文件的时间参数。当文件存在时,会修改此文件的时间参数,当文件不存在时,会在当前位置建立一个空文件。
文件的时间参数
linux系统中,每个文件主要拥有3个时间参数(通过stat命令进行查看),分别是文件的访问时间、数据修改时间以及状态修改时间:
访问时间(access time,简称atime):只要文件的内容被读取,访问时间就会更新。例如,使用cat命令可以查看文件的内容,此时文件的访问时间就会发生改变。
数据修改时间(modify time,简称mtime):当文件的内容数据发生改变,此文件的数据修改时间就会跟着相应改变。例如,修改了文件内容,此时间就会发生改变。
状态修改时间(change time,简称ctime):当文件的状态发生变化,就会相应改变这个时间。例如,如果文件的权限或者属性发生改变,此时间就会相应改变。
基本语法
1 [root@localhost ~]# touch [选项] 文件名
选项
1 -a:只修改文件的访问时间(atime)。 2 -m:只修改文件的数据修改时间(mtime)。 3 -c:仅修改文件的时间参数(三个时间参数都改变),如果文件不存在,则不建立新文件。 4 -d:把文件的时间改为指定的日期。 5 -t:把文件的时间改为指定的时间,时间书写格式为yymmddhhmm。
使用举例
1 [root@localhost home]# ls -l 2 总用量 0 3 [root@localhost home]# touch test 4 [root@localhost home]# ls -l 5 总用量 0 6 -rw-r--r--. 1 root root 0 7月 6 18:17 test 7 [root@localhost home]#
cp命令
cp命令,是copy的缩写,主要用来复制文件和目录,同时借助某些选项,还可以实现复制整个目录,以及比对两文件的新旧而予以升级等功能。
基本语法
1 [root@localhost ~]# cp [选项] 源文件 目标文件
选项
1 -a:此参数的效果和同时指定-dpr参数相同。 2 -d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接。 3 -f:强行复制文件或目录,不论目标文件或目录是否已存在。 4 -i:覆盖既有文件之前先询问用户。 5 -l:对源文件建立硬连接,而非复制文件。 6 -s:对源文件建立软链接,而非复制文件。 7 -p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间)。 8 -r/r:递归处理,将指定目录下的所有文件与子目录一并处理。 9 -u:目标文件并不存在则复制文件,目标文件存在并且比源文件旧的时候进行覆盖。 10 -s:在备份文件时,用指定的后缀“suffix”代替文件的默认后缀。 11 -b:覆盖已存在的文件目标前将目标文件备份。 12 -v:详细显示命令执行的操作。
使用举例
1 [root@localhost home]# ls 2 aaa test 3 [root@localhost home]# cp test temp 4 [root@localhost home]# ls 5 aaa temp test 6 [root@localhost home]# cp aaa bbb 7 cp: 略过目录"aaa" 8 [root@localhost home]# ls 9 aaa temp test 10 [root@localhost home]# cp -a aaa bbb 11 [root@localhost home]# ls 12 aaa bbb temp test 13 [root@localhost home]# cp -s test link 14 [root@localhost home]# ls 15 aaa bbb link temp test 16 [root@localhost home]#
mv命令
mv命令,是move的缩写,既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名。
基本语法
1 [root@localhost ~]# mv [选项] 源文件 目标文件
选项
1 -f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖。 2 -i:交互移动,如果目标文件已经存在,则询问用户是否覆盖,默认。 3 -n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户。 4 -v:显示文件或目录的移动过程。 5 -u:若目标文件已经存在,但两者相比,源文件更新,则会对目标文件进行升级。
使用举例
1 [root@localhost home]# ls 2 aaa bbb link temp test 3 [root@localhost home]# ls aaa 4 demo 5 [root@localhost home]# mv aaa/demo demo 6 [root@localhost home]# ls 7 aaa bbb demo link temp test 8 [root@localhost home]# ls aaa 9 [root@localhost home]# ls bbb 10 demo 11 [root@localhost home]# mv bbb/demo hello 12 [root@localhost home]# ls 13 aaa bbb demo hello link temp test 14 [root@localhost home]# ls bbb 15 [root@localhost home]# mv temp demo 16 mv:是否覆盖"demo"? n 17 [root@localhost home]# ls 18 aaa bbb demo hello link temp test 19 [root@localhost home]# mv -f temp demo 20 [root@localhost home]# ls 21 aaa bbb demo hello link test 22 [root@localhost home]#
rm命令
rm是强大的删除命令,remove的缩写,它可以永久性地删除文件系统中指定的文件或目录。在使用rm命令删除文件或目录时,系统不会产生任何提示信息。
注意,rm命令是一个具有破坏性的命令,因为rm命令会永久性地删除文件或目录,这就意味着,如果没有对文件或目录进行备份,一旦使用rm命令将其删除,将无法恢复,因此,尤其在使用rm命令删除目录时,要慎之又慎。
基本语法
1 [root@localhost ~]# rm [选项] 文件或目录
选项
1 -f:强制删除(force),系统将不再询问,而是直接删除目标文件或目录。 2 -i:在删除文件或目录之前,系统会给出提示信息,可以有效防止不小心删除有用的文件或目录。 3 -r:递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件。
使用举例
1 [root@localhost home]# ls 2 aaa bbb demo hello 3 [root@localhost home]# rm demo 4 rm:是否删除普通文件 "demo"?y 5 [root@localhost home]# ls 6 aaa bbb hello 7 [root@localhost home]# rm -f hello 8 [root@localhost home]# ls 9 aaa bbb 10 [root@localhost home]# rm bbb 11 rm: 无法删除"bbb": 是一个目录 12 [root@localhost home]# rm -r bbb 13 rm:是否删除目录 "bbb"?y 14 [root@localhost home]# ls 15 aaa 16 [root@localhost home]# rm -r aaa 17 rm:是否进入目录"aaa"? n 18 [root@localhost home]# ls 19 aaa 20 [root@localhost home]# rm -rf aaa 21 [root@localhost home]# ls 22 [root@localhost home]#