文件处理(Manipulating Files )

来自MagicLinux 百科
跳到导航 跳到搜索

文件处理

返回目录

原文链接 : http://www.linuxcommand.org/lts0050.php

本课将向你介绍以下几个命令:

  • cp 复制文件和目录
  • mv 移动或重命名文件及目录
  • rm 删除文件及目录
  • mkdir 新建目录

以上是在linux命令中使用频率最高的四个命令,也是处理文件和目录用到的基本命令.

现在,坦率地说,用命令行操作有些任务要比用图形文件管理器操作容易的多.利用文件管理器,你能够把文件从一个目录拖放到另一个目录,复制粘贴文件,删除文件,等等.那么为什么要用这些古老的命令行程序呢?

答案是命令行的强大功能和灵活性.虽然用图形文件管理器可以容易的处理简单文件,但对于复杂的任务,我们却可以利用命令行方便的执行.例如,如果将一个html文件从一个目录复制到另一个目录,要求只复制那些在目标目录中不存在的文件,或者比目标目录中版本新的文件,如何实现呢?用文件管理器处理非常困难,但如用命令行来实现则非常容易:

  • [me@linuxbox me]$ cp -u *.html destination

通配符

在我开始讲解命令之前, 我想谈一下一个shell功能--它使命令如此强大.因为shell使用文件名的频率非常高,它支持通过指定字符来帮你快速指定批量的文件名.这种指定的字符被称为通配符.通配符允许你根据字符样式来选取批量文件名.以下表格中列出了通配符及其含义:

--------------------------------------------
  通配符       含义 
--------------------------------------------
  *         代指任何字符
--------------------------------------------
  ?         代指任何一个字符 
--------------------------------------------
 [字符组]    代指字符组中的任一字符.该字符组可以
              用一个字符范围来表示.如[A-Z]表示所
              有的大写字母. 
--------------------------------------------
 [!字符组]   代指除字符组内容之外任意字符
--------------------------------------------

使用通配符,就有可能依据文件名构建出非常复杂的选择条件.以下是几个形式的例子及其含义:

--------------------------------------------------
 样式         含义 
--------------------------------------------------
 *         全部文件名 
--------------------------------------------------
 g*        以字母g开头的文件名 
--------------------------------------------------
 b*.txt    以字母b开头,以 .txt结尾的文件名 
--------------------------------------------------
 Data???   以Data开头紧跟三个任意字符的文件名 
--------------------------------------------------
 [abc]*    以a或b或c开头后跟任意字符的文件名 
--------------------------------------------------
 [A-Z]*    以一个大写字母开头的文件名.(一个范围示例) 
--------------------------------------------------
 BACKUP.[0-9][0-9][0-9]    以"BACKUP."开头紧跟三
                               个数字的文件名 
--------------------------------------------------
 [!a-z]*   不以小写字母开头的文件名 
--------------------------------------------------

你可以将通配符应用到任何接受文件名参数的命令中去.

cp

cp命令可以复制文件和目录.其最简形式,可以复制一个文件:

  • [me@linuxbox me]$ cp file1 file2

它可以把多个文件复制到另一个目录中:

  • [me@linuxbox me]$ cp file1 file2 file3 directory

cp命令的其它的有用示例及其选项,参见下表:

--------------------------------------------------------
  示例               执行结果
--------------------------------------------------------
 cp   file1 file2    将file1中的内容复制至file2文件.如果
                        file2文件不存在,新建files2;否则替换
                        file2文件内容.
--------------------------------------------------------
cp -i file1 file2    因使用-i选项,如果file2文件存在,在其
                        被替换内容前,系统先会给用户以提示.
--------------------------------------------------------
cp file1 dir1        复制file1文件到dir1目录中仍命令为file1
--------------------------------------------------------
cp -R dir1 dir2     复制dir1目录内容.如果dir2目录不存在,新建
                       dir2目录(其内容与dir1内容一样);否则,将
                       dir1目录及内容复制至dir2目录中.
--------------------------------------------------------

mv

依据不同的使用方法,mv命令可以实现两种不同的功能:一、将一个或多个文件移动到另一不同的目录;二、重命名一个文件或目录。通过以下命令重命名一个文件:

  • [me@linuxbox me]$ mv filename1 filename2

将文件移动到新目录下:

  • [me@linuxbox me]$ mv file1 file2 file3 directory

mv使用举例及选项列表如下:

------------------------------------------------------------- 
   命令                      执行效果
-------------------------------------------------------------
 mv file1 file2            如果file2不存在,file1更名为file2
                           如果file2存在,其内容将被file1替换
--------------------------------------------------------------
mv -i file1 file2          使用-i选项,若file2存在,在其内容被
                               替换前,系统给用户以提示
--------------------------------------------------------------
mv file1 file2 file3 dir1   将file1/2/3三个文件移至dir1目录中
                                dir1必须存在,否则系统提示出错
--------------------------------------------------------------
mv dir1 dir2              如果dir2不存在,dir1更名为dir2;如果dir2
                          存在,将dir1内容复制至其中
--------------------------------------------------------------

rm

rm命令用于删除文件和目录.

  • [me@linuxbox me]$ rm file

删除目录格式如下:

  • [me@linuxbox me]$ rm -r directory

举例及选项列表如下:

---------------------------------------------
  命令                执行效果
---------------------------------------------
rm file1 file2     删除file1和file2文件
---------------------------------------------
rm -i file1 file2  利用-i选项在删除每个文件前给予提示
----------------------------------------------
rm -r dir1 dir2    删除dir1/dir2目录及其目录内容
----------------------------------------------

慎用rm命令

Linux没有恢复误删除命令.一旦你用rm命令删除了文件,它将一去不复返.如果你不慎用rm命令,你将对系统造成严重的损害,尤其在使用通配符的情况下.

在你使用带通配符的rm命令前,试用这个有用的小窍门: 先用带通配符的ls构建命令替代rm.这样做的好处是,在删除文件前,你能够查看使用通配符的效果.当你用ls命令测试完后,按向上的箭头调用命令,用rm代替ls后执行删除命令.


mkdir

mkdir命令用于创建一个新目录,用法如下:

  • [me@linuxbox me]$ mkdir directory

要知后事如何,且看:输入/输出重定向(I/O Redirection )


© 2000-2006, William Shotts, Jr. Verbatim copying and distribution of this entire article is permitted in any medium, provided this copyright notice is preserved.

Linux® is a registered trademark of Linus Torvalds.