文件处理(Manipulating Files )
文件处理
返回目录
原文链接 : 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.