8.4 文件操作命令 见书之P159
1 复制文件:cp 命令
cp(copy)命令用来创建文件的副本。可以将文件从一个目录复制到另一个目录,来制作文件的备份。
命令选项:
UNIX Linux对应的选项 功能说明
---------------------------------------------------------------------------------
-b --backup 如果指定的文件已存在,就创建它的备份
-i --interactive 如果目标文件已存在,要求确认
-r --recursive 将目录复制到新的目录
--verbose 解释操作
--help 显示帮助页并退出
---------------------------------------------------------------------------------
例:将文件myfile创建一个副本myfile.copy
$cp myfile myfile.copy [return] ............ 创建文件的副本myfile.copy
$ls [return] ....................................... 用列表命令查看,可以看到当前目录中刚创建的文件副本
例:假设当前目录下有aa子目录与test文件,下面命令将test文件备份到aa子目录下
$cp test aa [return] ........................... 将test文件备份到aa子目录下
$ls aa [return] .................................. 列表子目录查看,可以看到aa目录下多了test文件
例:将当前目录下的test1 test2两个文件拷到aa子目录下
$cp test1 test2 aa [return] .................. 将test1、test2两个文件拷到aa子目录下
$ls aa [return] ................................... 列表aa子目录查看
-b 选项: 如果在目标目录下已经存在要复制的文件,-b(backup)选项就创建该文件的副本。
这样可以防止用户覆盖一个已经存在的文件。
例:略---macbook中的cp命令没有-b选项,所以略了
-i 选项: -i选项使用户不能覆盖已有的文件,如果目标文件已经存在,就要求确认。
例:将test文件拷到子aa子目录下,而aa目录下已经有test文件
$cp -i test aa [return] ....................... 将test文件拷到aa子目录下
overwrite aa/test? (y/n [n]) _ ............ 提示信息:是否覆盖aa/test文件,选择y/n, 默认是n
-r 选项: 将目录及其下的内容复制到目标目录下
例: 将当前目录的aa子目录拷到bb子目录下
$cp -r aa bb [return] ........................ 将aa子目录及其下内容复制到bb子目录下
$ls bb [return] ................................ 列表bb子目录
2 移动文件: mv 命令
使用mv命令将文件从一个地方移到另一个地方,或者改变文件名或目录名
例:将当前目录下的test文件改名为test.old
$mv test test.old [return] .................. 将test文件改名为test.old
$ .................................................... 命令提示符
注:cp和mv命令都接受两个以上的参数,但最后一个参数必须是目录。
例:将test1、test2两个文件移到bb子目录下
$mv test1 test2 bb [return] .............. 将test1、test2两个文件移到bb子目录下
$ ................................................... 命令提示符
例:改变目录名,假设当前目录下有bb子目录,下面将其改名为cc目录
$mv bb cc [return] .......................... 将bb子目录改名为cc
$ ................................................... 命令提示符
mv命令选项 Linux对应的选项 功能
---------------------------------------------------------------------------------
-b --backup 如果指定文件已存在,就创建它的备份
-i --interactive 如果目标文件已存在,要求确认
-f --force 如果目标文件已存在,直接删除,不要求确认
-v --verbose 解释操作
--help 显示帮助页并退出
--version 显示版本信息并退出
---------------------------------------------------------------------------------
3 链接文件: ln 命令
ln命令在已经存在文件和新文件名之间创建新链接(名字)。这意味着可以为已存在的文件创建别外的名字,从而使用不同的名字引用相同的文件。
相当于原来的文件又有了一个别名。
例: $ls -l [return] ........................................ 列表详细信息
total 8 文件总体大小8个块,每块512字节
-rw-r--r-- 1 cnyxj staff 13 6 3 21:51 test
$ln test test_ln [return] .......................... 为test建一个新名字test_ln, 注意不是新建一个文件
$ls -l [return] ........................................ 列表详细信息
total 16
-rw-r--r-- 2 cnyxj staff 13 6 3 21:51 test
-rw-r--r-- 2 cnyxj staff 13 6 3 21:51 test_ln
注意:第一次列表中,第二列数字( -rw-r--r--后面跟的数字)是1, 表示链接数为1,而第二次列表中链接数显示为2
ln跟cp不同,cp在物理上将文件复制到另一个地方,用户有两个独立的文件。修改其中的一个文件,另一个文件不受影响。
而ln命令只是为同一个文件创建了另一个文件名,而没有创建新文件,如果改变了其中任何一个链接文件的内容,不管用户引用的是它的哪一个名字,这些文件都会发生改变。
例: 假设原来test文件的内容为“this is test"
$cat >> test [return] ................................ 在test文件尾部添加内容
plus new .................................................. 添加"plus new"
[Ctr+d] .................................................... 用ctr+d键退出
$cat test_ln [return] .................................. 显示test_ln文件内容,注意不是test文件名
this is test
plus new
$ ............................................................. 命令提示符
可以看到,虽然修改的是test,但test_ln的内容也随之改变了,因为它们其实都是指向同一个文件。
4 计算字数:wc 命令
wc 命令计算指定的一个或多个文件中的行数、字数或字符数。
例: $cat test [return] .................................. 显示刚才那个test文件
this is test
plue new
$wc test[return] .................................. 计算test中的行数、字数和字符数
2 5 22 test 2行5个字22个字符,应该是把空格与换行符也算在内的
$ ....................................................... 命令提示符
如果wc后面没有文件名,wc就从标准输入设备(键盘)获得输入。
例: 用wc计算键盘输入的行数、字数和字符数
$wc [return] ....................................... 不带文件名的wc命令
what ?
[ctr+d] ............................................... 退出输入
1 2 7 输入1行2个字7个字符,因为问号与前面有空格,所以算两个字
$ ....................................................... 命令提示符
例: 计算文件的行数字数字符数
$ wc test test_ln [return] ..................... 指定了两个文件名
2 5 22 test
2 5 22 test_ln
4 10 44 total
$ ........................................................ 命令提示符
wc的选项
UNIX选项 Linux对应的选项 功能说明
---------------------------------------------------------------------------
-l --lines 报告行数
-w --words 报告字数
-c --chars 报告字符数
--help 显示帮助页并退出
--version 显示版本信息并退出
----------------------------------------------------------------------------
可以将wc命令计算的结果重定向到新文件中
例: $wc -w test test_ln > test.wc [return] ............ 将test test_ln两文件的字数重定向到test.wc文件
$cat test.wc [return] ..................................... 显示test.wc的内容
5 test
5 test_ln
10 total
$ ................................................................ 命令提示符