cp
语法 cp+常用选项+源文件或目录+目标文件或目录
功能 复制文件或目录到指定位置
常用选项如下
* -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
* -i 或 --interactive 覆盖文件之前先询问用户
* -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链
接,则一律视为普通文件处理
* -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
例1
当依次执行以下命令时,产生的结果如图所示:
[1]cp /etc/passwd ./ 将etc目录下的passwd文件拷贝到当前的目录下
[2]mkdir test 创建目录test
[3]mkdir tmp 创建目录tmp
[4]cp test/ tmp/ 将目录test拷贝到tmp目录下
由此我们可以看出将目录进行拷贝在cp指令的默认状态下是无法进行的,原因在于一个目录下其中还可能包含子目录与文件,因此拷贝时是仅拷贝该目录偶还是拷贝包括其目录下的所有文件?会产生歧义。
因此若想实现拷贝目录的功能将需要使用选项-r进行处理。如例2所示。
例2
cp -r test/ tmp/
例3
特殊情况:当拷贝到的目的地没有对应的目录
如执行: cp ./passwd test/dir
这个时候依然会操作成功,但是会将passwd文件改名为dir放到test目录下:
【注意】
cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
mv指令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。即类似于剪切功能。
语法: mv+常用选项+源文件或目录+目标文件或目录
功能:
[1]视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
[2] 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
[3] 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
常用选项如下:
*-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
*-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
例4
执行命令 mv passwd ./test 可知文件目录的前后变化
例5
读下列指令:
[1]ls
[2]mv passwd abc
[3]ls
[4]ls abc
得到运行结果如下:
我们根据运行结果可知,满足功能的第二条,即当第二个目标参数为文件类型时,便将源文件重命名为目标文件的名字,并且置于目标文件之下
cd指令
语法: cd + 所需进入的目录名
功能: 改变工作目录。将当前工作目录改变到指定的目录下。
例6
cd . . 返回上级目录
如下图,当前目录为test
当执行 cd . . 之后进入上层目录下,如图所示:
touch指令
语法: touch+常用选项+文件名
功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项如下:
* -a 或–time=atime或–time=access或–time=use只更改存取时间。
* -c 或–no-create 不建立任何文档。
* -d 使用指定的日期时间,而非现在的时间。
* -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
* -m 或–time=mtime或–time=modify 只更改变动时间。
* -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
* -t 使用指定的日期时间,而非现在的时间。
例7
touch test1.txt 不存在test1.txt,则在当前目录下创建该文件
例8
touch test1.txt 存在test1.txt,则更新该文件日期时间
我们可以使用stat指令来观察文件的各种状态值。
例9
touch -d ''1999-12-25 21:21:21" test.txt
注意观察其状态时间
cat 指令
语法: cat + 常用选项+ 打印的文件名
功能: 查看、打印目标文件的内容
常用选项:
* -b 对非空输出行编号
* -n 对输出的所有行编号
* -s 不输出多行空行
【注意】一般只用于输出短小文件,太长一般只显示一千行,且翻看麻烦
more 指令
为弥补cat打印指令带来的弊端,使用more指令进行分页显示文件内容。
语法: more +常用选项+文件名
功能: more命令,功能类似 cat
常用选项:
* -n 对输出的所有行编号
空格向下翻页(且只能向下翻页)
回车向下换行滚动
q 退出more
less指令
也是分页显示文件内容,功能比more更加全面,作为Linux中正统查看文件内容的工具。
语法: less +常用选项+文件名
功能: less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
常用选项:
* -i 忽略搜索时的大小写
* -N 显示每行的行号
* /字符串:向下搜索“字符串”的功能
* ?字符串:向上搜索“字符串”的功能
* n:重复前一个搜索(与 / 或 ? 有关)
* N:反向重复前一个搜索(与 / 或 ? 有关)
q:quit
f:向上翻页,b:向下翻页
j:按行向上滚动 k:按行向下滚动
head指令
语法: head +常用选项+文件名.
功能: head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行
常用选项
* -n<行数> 显示的行数
例10
head abc
tail指令
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.
语法: tail+常用选项+选项参数+文件名称
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。(默认后十行)
常用选项:
* -f 循环读取
** -n<行数> 显示行数
例11
tail -n 3 abc
例12
要求显示文件的第10行
head -n 10 abc | tail -n 1
【注意】这里的 | 符号叫做管道符,将前方命令的处理结果继续由后续命令进行处理,功能在于可以连接若干个不同的命令实现计划功能。