Linux 文件和目录管理之列出、删除、复制、移动及改名
时间:2009-03-23 来源:sjhf
1.27 ls的-F参数的示例; [root@localhost ~]# ls -F crondw.sh* kernel/ mkuml-2004.07.17-ananas.tar.bz2 openQreadme.txt@ sun.txt upgrade.log youdir/ [root@localhost ~]# ls -lF 总计 92 -rwxr-xr-x 1 root root 0 04-20 14:18 crondw.sh* drwxr-xr-x 3 root root 4096 04-20 14:17 kernel/ -rw-r--r-- 1 root root 68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2 lrwxrwxrwx 1 root root 7 04-20 14:18 openQreadme.txt -> sun.txt -rw-r--r-- 1 root root 11 04-20 14:17 sun.txt -rw-r--r-- 1 root root 613 03-26 18:41 upgrade.log drwxr-xr-x 6 root root 4096 04-20 14:17 youdir/ 1.3 通配符在ls命令中的应用; * 代表0个或多个字符 []内部包括任何字符 ? 任何单个字符 举例: 比如我们显示以k开头的所有文件,在/root目录中的; [root@localhost ~]# ls /root/k* kernel002.rpm kernel00.rpm kernel1.rpm kernel-2.6.15-1.2025_FC5.i686.rpm kernel.rpm 我们显示以数字开头的所有文件; [root@localhost ~]# ls [0-9]* 123.txt 234.txt 2kexe.txt 6mns.doc 下面是一个?通配符的示例: [root@localhost ~]# ls *.t?t 123.txt 234.txt 2kexe.txt 333.tot plinux.txt 1.4 获得ls 的帮助; ls 的用法比较简单,至于更详细的参考,还是查man和help。遇到不会的,就查手册,我也是这么做的。 [root@localhost ~]# ls --help [root@localhost ~]# man ls [root@localhost ~]# info ls 2、移动文件或目录的命令 mv ; mv 命令是用来移动文件或目录的;有以下几种格式; #mv file1 file2 注:把file1移动到file2,如果file2不存在,则创建file2文件名; #mv file1 dir 注:把一个文件移动到一个事实存在的目录; #mv dir1 dir2 移动目录dir1 到 dir2 ,如果dir2不存在,则创建它; #mv file1 file2 file3 ... ... dir 移动file1、file2、file3等多个文件到dir目录中; #mv dir1 dir2 ... ... dirn 注:移动目录dir1和dir2等多个目录到dirn目录中 参数-i ,表示人机交互模式;提示警告信息; 举例: [root@localhost ~]# mv -i 123.txt 234.txt mv:是否覆盖“234.txt”? y 注:要在这里输入y,表示允许覆盖234.txt文件;如果是n,请示不允许; mv 也能和通配符结合一起使用,这样能把相似特征的文件移动到某处; * 代表0个或多个字符 []内部包括任何字符 ? 任何单个字符 举例:比如移动以数字开头的文件或目录到 root目录下的tmp目录中; [root@localhost ~]# pwd /root [root@localhost ~]# mv [0-9]* tmp/ [root@localhost ~]# ls -lh tmp/ 总计 4.0K -rw-r--r-- 1 root root 21 04-19 15:06 234.txt -rw-r--r-- 1 root root 0 04-19 22:23 2kexe.txt -rw-r--r-- 1 root root 0 04-19 22:25 333.tot -rw-r--r-- 1 root root 0 04-19 22:23 6mns.doc 3、文件或目录的复制工具cp ; 3.1 cp 的语法和参数 #cp [参数选项] 源文件或目录 目标文件或目录 注:参数是可选的,常用参数比如 -r,-R,-p,-i ; 参数说明(部份) -a 等同于-dpR参数一起使用;在复制过程中尽可能保留源文件或目录的属性; -b 给被覆盖的文件做备份。比如我们把file1 复制到file2时,如果file2存在,我们把file2覆盖掉,用这个参数就能同时生成一个file2~的文件,注意文件名后有~结尾 -d 不间接引用符号链接,保持源文件和目标文件之间的硬链接关系; -f 删除已存在的目标文件; -i 覆盖已存在的目标文件之前给出警告提示,这是人机交互的选项; -l 建立文件硬链接,而不是复制; -p 保存源文件或目录的最后修改时间和模式,比如要保持目标目录或文件的属主、组、权限和最后访问(或修改)时间; -R 复制目录时,包括淅目录下所有的子目录和文件; -s 建立源文件的符号链接,而不是复制源文件。源文件名必须用绝对路径; -r 复制目录时,包括淅目录下所有的子目录和文件;-r选项不同于-R之处在于 尝试打开目的地文件前先删除已存在的目的地文件 -i 人机交互模式,显法覆盖已存在的文件或目录的警告信息; -v 在复制之前,输出每个文件的名字; --help 查看帮助 ; 3.2 示例说明cp应用; 3.21 参数-i的示例; [root@localhost ~]# ls anaconda-ks.cfg install.log.syslog Kernel.rpm mydir Plist upgrade.log youdir fonts.scale kernel mkuml-2004.07.17-ananas.tar.bz2 plinux.txt sun upgrade.log.syslog [root@localhost ~]# pwd /root [root@localhost ~]# cp -i Kernel.rpm Plist cp:是否覆盖“Plist”? y 注:人机交互在数-i的运用;如果源文件复制到目标文件,如果目标文件存在,则提示警告; 3.22 参数-a的示例及说明; 把源目录复制到另外的一个目标,相当于克隆了一个目录,源目录和目标目录在用户组、权限及修改或访问时间保持一致; [root@localhost ~]# cp -a mydir youdir 注:复制目录mydir 到youdir ,如果yourdir目录不存在,则创建。并且把mydir中所有的文件下级子目录都复制到 yourdir目录中。也就是说mydir目录的文件和youdir是一样的。-a 参数等同于-dpR,并且源目录和目标目录的属性(用户组、权限、最后访问及修改时间)都一致; 3.23 参数-b的示例应用; 把源文件复制为目标文件;并且尝试-b参数的运用; [root@localhost ~]# cp fonts.scale fonts.dir 把一个文件复制为另一个文件; [root@localhost ~]# cp -bi fonts.scale fonts.dir cp:是否覆盖“fonts.dir”? y 注:因为用了-i 参数,如果目标文件存在,则报警提示; [root@localhost ~]# ls -lh fonts.* -rw-r--r-- 1 root root 2 04-20 10:24 fonts.dir -rw-r--r-- 1 root root 2 04-20 10:24 fonts.dir~ 注:-b参数运用的效果就是生成已存在目标文件的覆盖之前备份。 -rw-r--r-- 1 root root 2 03-27 02:00 fonts.scale 3.24 把多个文件复制到目录目录中示例; 比如我们把位于用户当前目录下的fonts.dir、Kernel.rpm和Plist文件,复制到当前用户所处的目录下的sun目录中; [root@localhost ~]# pwd 注:判断用户所处的位置,也就是所处的目录; /root [root@localhost ~]# mv fonts.dir Kernel.rpm Plist sun/ [root@localhost ~]# ls sun/ fonts.dir Kernel.rpm Plist 注:如果您想把多个目录或文件复制到目标目录时,您得加参数 -R 3.25 复制目录时-R参数的应用; 复制一个目录到另一个目录时,我们要用到 -r或-R 或-a , 如果目标目录不存在,则创建它,如果目标目录存在,则复制源目录到目标目录之下;看看-a和-R或-r有什么不同?尝试看看; 比如我们在用户当前操作的目录中,有mydir目录,我们想把mydir复制为medir(在复制之前medir是不存在的)。 [root@localhost ~]# cp -R mydir medir 注:如果medir目录不存在,则创建medir目录,并且medir目录中的内容和mydir中的一样; 如果您把-R参数换成-a参数,会有什么不同?看看前面的例子所说的; 4、 目录创建工具mkdir和删除空目录工具rmdir; 4.1 mkdir 是目录创建工具; 4.11 mkdir语法格式及参数; 语法格式 #mkdir [参数选项] 目录 参数常用的如下: -m 在创建目录时要授其权限,要和chmod的授权格式; -p 如果中间目录不存在,则创建它 4.12 参数 -p 的应用示例 我们要创建一个目录linuxsir,并且linuxsir目录下包含子目录sirdoc,sirdoc目录下还有 redhat目录; [root@localhost ~]# mkdir -p linuxsir/sirdoc/redhat 举例: -m 参数的应用示例; 我们以不同的权限来创建目录,然后查看我们所创建目录的属性;这要涉及到chown 来改变目录的权限的格式。我们会在以后讲到chown改变目录或文件的权限。在这里不同的是,在目录创建之时就给其授权了; [root@localhost ~]# mkdir -m 644 sundir [root@localhost ~]# mkdir -m 755 moondir [root@localhost ~]# mkdir -m 000 beinandir [root@localhost ~]# ls -ld sundir moondir beinandir d--------- 2 root root 4096 04-20 11:01 beinandir drwxr-xr-x 2 root root 4096 04-20 11:01 moondir drw-r--r-- 2 root root 4096 04-20 11:00 sundir 4.2 删除空目录工具 rmdir 和rm ; rmdir 是用来删除空目录用的,如果目录中有文件或子目录,必须先删除文件或子目录,其语法格式如下: #rmdir [参数] 目录 rmdir 参数常用的有: -p 删除目录时是一级一级的时行的,值得注意的是,首先从最里面的目录开始。下面是一个例子; [root@localhost ~]# mkdir -p linuxsir/sirdoc/redhat/ 注:首先在当前目录下创建linuxsir目录,他的子目录是sirdoc,sirdoc内又有一个子目录redhat [root@localhost ~]# rmdir -p linuxsir/sirdoc/redhat/ 注:删除linuxsir目录,要用到参数-p [root@localhost ~]# ls linuxsir 注:检查一下是不是还有这个目录? ls: linuxsir: 没有那个文件或目录 rmdir 所删除的目录,每级目录中都是空的,没有其它的文件。如果任何一级的目录有文件,也不能删除。这时您要用到rm -rf 命令强制删除。不过用rm -rf 删除时有点不安全,还是用rf -ri 比较好一点,因为在删除的时候,会有警告提示。这对于安全操作来说是很重要的; [root@localhost ~]# ls -lh sun/ 注:这是sun目录,里面有内容; 总计 28K -rw------- 1 root root 1.4K 04-19 15:04 anaconda-ks.cfg -rw-r--r-- 1 root root 2 04-20 10:24 fonts.dir -rw-r--r-- 1 root root 2 03-27 02:00 fonts.scale -rw-r--r-- 1 root root 5.3K 03-16 08:52 install.log.syslog -rw-r--r-- 1 root root 0 04-19 20:44 Kernel.rpm -rw-r--r-- 1 root root 0 04-20 10:20 Plist [root@localhost ~]# rmdir sun/ 注:我们尝试用rmdir来删除, rmdir: sun/: 目录非空 [root@localhost ~]# rm -rf sun/ 注:强制用rm -rf 来删除; [root@localhost ~]# ls sun 注:检查是否删除,删除成功; ls: sun: 没有那个文件或目录 5、创建一个空文件的工具:用 touch、echo、cat等工具; 有时我们为了方便,可能在控制台或终端下创建一个不存在的空文件,然后我们再用编辑器来编辑它;创建空文件有时还有点用。说说也无妨。我们在这里用touch、ech0及cat 工具。其实这些工具,创建文件只是他们的一个小小的功能,我们以后再介绍这些工具,先说他们创建文件的功能。 注意:创建这些文件,在我们操作创建文件之前,这些文件在用户当前操作目录下是不存在的,我们在这里只是创建一个新的文件名,并且它里面没有任何空容的; [root@localhost ~]# ls 123456.txt 654321.txt 98765.txt ls: 123456.txt: 没有那个文件或目录 ls: 654321.txt: 没有那个文件或目录 ls: 98765.txt: 没有那个文件或目录 [root@localhost ~]# echo > 123456.txt 注:用ech0 来创建,在创建之前在此操作目录下不存不123456.txt文件; [root@localhost ~]# ls 123456.txt 注:查看一下看有没有生成? 123456.txt [root@localhost ~]# touch 654321.txt 注:用 touch 来创建,在创建之前在此操作目录下不存在654321.txt文件; [root@localhost ~]# ls 654321.txt 注:查看一下看有没有生成? 654321.txt [root@localhost ~]# cat > 98765.txt 注:用ech0 来创建,在创建之前在此操作目录下不存在98765.txt 文件;然后按ctrl+c组合键退出; [root@localhost ~]# ls 98765.txt 注:查看一下看有没有生成? 98765.txt 6、删除文件工具rm; rm 是用来删除一个或多个文件的工具,并且能用于删除非空目录。我们前面提到了可以加参数-rf 就可以强制删除一个非空目录。 rm的语法格式; #rm [参数选项] file1 file2 ... ... #rm [参数选项] dir1 dir2 dir3 ... ... rm 常用参数: -f 不显示警告或提示信息就删除,用的时候需要小心; -i 删除文件时,显示警告信息,要多用,这样比较安全;根据提示,输入y就表示删除,输入n,请示不删除; -r或-R 表示可以删除整个目录(包括子目录及所有文件),要小心用; [root@localhost ~]# rm -i 123.sh 注:这是删除一个文件,用-i参数的示例,有警告提示; rm:是否删除一般空文件“123.sh”? y 比如我们想删除mydir目录及所有下级目录和文件,要有提示的警告信息,可以用-r参数和-i参数的组合;如果您想终止rm命令,请按ctrl+c组合健退出rm; [root@localhost ~]# rm -ri mydir/ rm:是否进入目录“mydir/”? y rm:是否进入目录“mydir//youdir”? y rm:是否删除一般文件“mydir//youdir/enteruml.sh”? 如果您想没有任何警告信息的删除mydir目录下的所有文件及子目录,可以用-r和-f参数的组合; [root@localhost ~]# rm -rf mydir 7、修改文件名工具 mv mv 可以移动一个文件(或目录)到另一个文件(或目录),如果文件(或目录)不存在,则创建它。其实mv 这个过程也可以理解为改名过程,所以说mv工具能修改文件名和目录名。 #mv 原文件名或目录名 新文件或目录名 注意:新文件名或目录名应该不能与现有文件名(或目录名)同名。 举例: [root@localhost ~]# ls crondw.sh kernel mkuml-2004.07.17-ananas.tar.bz2 mydir openQreadme.txt sun.txt upgrade.log youdir [root@localhost ~]# mv crondw.sh 123.sh 注:移动crondw.sh 到123.sh ,其实就是把文件名改为了123.sh [root@localhost ~]# ls 123.sh kernel mkuml-2004.07.17-ananas.tar.bz2 mydir openQreadme.txt sun.txt upgrade.log youdir 再看一例mv 修改目录的。当然mv是把文件(或目录)从一个地方移到另一个地方。如果另一地方没有和源文件(或目录)同名的,就创建。这也相当于改名; [root@localhost ~]# ls 123.sh kernel mkuml-2004.07.17-ananas.tar.bz2 mydir openQreadme.txt sun.txt upgrade.log youdir [root@localhost ~]# mv kernel/ kernelBak [root@localhost ~]# ls 123.sh kernelBak mkuml-2004.07.17-ananas.tar.bz2 mydir openQreadme.txt sun.txt upgrade.log youdir 8、关于本文; 本文是为新手上路而写的,也是基础文档之一,如果您认为有用,那就送给您了。呵~~~~~~请各路大侠多多指正吧,谢谢~ 今天值得高兴的事是我终于能从文件系统写到文件方面的内容了,也学到了不少东西,想来想去有点不容易~~~接着加油; 9、后记; 本文是文件管理一部份,包括了文件(或目录)的查看工具ls、复制cp、移动mv;目录的创建mkdir,目录的删除rm或rmdir;还有创建空文件的几个工具;mv的改名用途;文件的删除rm; 说是文件和目录的管理,没有写路径方面的知识,好象是少点东西。本来是想先写路径和目录方面的内容了。后来一想一篇容不下,先把看上去很乱的东西写一写。然后再写路径的内容。 |
相关阅读 更多 +