cp 命令

cp(英文全拼:copy file)命令主要用于复制文件或目录

语法:cp [选项] 源文件 目标文件

source(源文件)表示要复制的文件或目录的路径,dest(目标文件)表示复制后的文件或目录的路径

选项说明:

  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于 dpR 参数组合。
  • -d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
  • -r 或 –recursive:用于复制目录及其所有的子目录和文件,如果要复制目录,需要使用该选项。
  • -i 或 –interactive:在复制前提示确认,如果目标文件已存在,则会询问是否覆盖,回答 y 时目标文件将被覆盖。。
  • -u 或 –update:仅复制源文件中更新时间较新的文件。
  • -v 或 –verbose:显示详细的复制过程。
  • -p 或 –preserve:保留源文件的权限、所有者和时间戳信息。
  • -f 或 –force:强制复制,即使目标文件已存在也会覆盖,而且不给出提示。
  • -l:不复制文件,只是生成链接文件。
1
2
3
[moe@master ~]$ cp a.txt dongman
[moe@master ~]$ ls dongman/
a.txt
1
2
3
4
5
6
7
[moe@master ~]$ ls test/
dongwu ren
[moe@master ~]$ cp test dongman -r
[moe@master ~]$ ls dongman/
a.txt test
[moe@master ~]$ ls dongman/test
dongwu ren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[moe@master ~]$ cp a.txt d.txt -a
[moe@master ~]$ ll
总用量 20
-rw-rw-r--. 1 moe moe 6 4月 15 00:04 a
-rw-rw-r-- 1 moe moe 22 4月 15 10:43 a.txt
-rw-rw-r--. 1 moe moe 7 4月 15 00:07 b
-rw-rw-r-- 1 moe moe 0 4月 15 09:26 b.txt
-rw-rw-r-- 1 moe moe 22 4月 15 10:44 c.txt
drwxrwxr-x. 2 moe moe 19 4月 15 10:43 dongman
-rw-rw-r-- 1 moe moe 22 4月 15 10:43 d.txt
drwxrwxr-x. 4 moe moe 31 4月 14 23:46 test
drwxr-xr-x. 2 moe moe 6 4月 14 22:32 公共
drwxr-xr-x. 2 moe moe 6 4月 14 18:57 模板
drwxr-xr-x. 2 moe moe 6 4月 14 18:57 视频
drwxr-xr-x. 2 moe moe 6 4月 14 18:57 图片
drwxr-xr-x. 2 moe moe 6 4月 14 18:57 文档
drwxr-xr-x. 2 moe moe 6 4月 14 18:57 下载
drwxr-xr-x. 2 moe moe 6 4月 14 18:57 音乐
drwxr-xr-x. 2 moe moe 40 4月 14 20:46 桌面

mv 命令

mv(英文全拼:move file)命令用来为文件或目录改名、或将文件或目录移入其它位置

语法:mv [options] source dest
选项说明:

  • -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
  • -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
  • -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件(默认)。
  • -n: 不要覆盖任何已存在的文件或目录。
  • -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

执行命令: mv source_file(文件) dest_file(文件) ,会将源文件名 source_file 改为目标文件名 dest_file

1
2
3
4
5
6
7
8
9
[moe@master ~]$ mv a.txt e.txt
[moe@master ~]$ ls
a b.txt dongman e.txt 公共 视频 文档 音乐
b c.txt d.txt test 模板 图片 下载 桌面
[moe@master ~]$ gedit e.txt
[moe@master ~]$ mv e.txt d.txt
[moe@master ~]$ ls
a b.txt dongman test 模板 图片 下载 桌面
b c.txt d.txt 公共 视频 文档 音乐

如果 dest_file文件 存在,会被覆盖掉

执行命令: mv source_file(文件) dest_directory(目录) ,将文件 source_file 移动到目标目录 dest_directory 中

1
2
3
4
5
6
7
8
9
10
[moe@master ~]$ ls dongman
a.txt test
[moe@master ~]$ gedit dongman/a.txt
[moe@master ~]$ touch a.txt
[moe@master ~]$ mv a.txt dongman/a.txt
[moe@master ~]$ gedit dongman/a.txt

[moe@master ~]$ mv c.txt dongman
[moe@master ~]$ ls dongman/
a.txt c.txt test

如果 dest_directory(目录) 中存在同名的 **source_file(文件)**,会将其覆盖掉

执行命令: mv source_directory(目录) dest_directory(目录) ,目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory

1
2
3
4
5
6
7
8
9
10
11
12
13
[moe@master ~]$ mv test dongman/
mv: 无法将"test" 移动至"dongman/test": 文件已存在

[moe@master ~]$ mkdir nv
[moe@master ~]$ ls
a b.txt d.txt test 模板 图片 下载 桌面
b dongman nv 公共 视频 文档 音乐
[moe@master ~]$ mv nv dongman/
[moe@master ~]$ ls
a b.txt d.txt 公共 视频 文档 音乐
b dongman test 模板 图片 下载 桌面
[moe@master ~]$ ls dongman/
a.txt c.txt nv test

不能将一个目录移动到已存在该目录的目录中去

执行命令:mv source_directory(目录) dest_file(文件) ,错误

1
2
[moe@master ~]$ mv dongman/ d.txt
mv: 无法以目录"dongman/" 来覆盖非目录"d.txt"

输出重定向命令

Linux允许将命令执行结果重定向到一个文件(不存在则新建一个)中,即本应显示到终端上的执行结果会保存到指定文件中去

1
2
[moe@master ~]$ pwd >b.txt
[moe@master ~]$ pwd >>b.txt

> 输出重定向会覆盖原来的内容, >> 输出重定向会追加到文件的尾部

cat 命令

cat(英文全拼:concatenate)命令用于将文件的内容显示到终端界面

语法:cat [-AbeEnstTuv] [–help] [–version] fileName
选项说明:

  • -n 或 –number:由 1 开始对所有输出的行数编号。
  • -b 或 –number-nonblank:和 -n 相似,只不过对于空白行不编号。
  • -s 或 –squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
  • -v 或 –show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
  • -E 或 –show-ends : 在每行结束处显示 $。
  • -T 或 –show-tabs: 将 TAB 字符显示为 ^I。
  • -A, –show-all:等价于 -vET。
  • -e:等价于”-vE”选项;
  • -t:等价于”-vT”选项;
1
2
3
4
5
6
7
8
9
10
[moe@master ~]$ cat b.txt 
/home/moe
/home/moe
[moe@master ~]$ cat d.txt
你好我是测试者
[moe@master ~]$ cat b.txt d.txt > a.txt
[moe@master ~]$ cat a.txt
/home/moe
/home/moe
你好我是测试者

dev/null:在类 Unix 系统中,/dev/null 称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个 EOF

more 命令

more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h

语法:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
参数:

  • -num 一次显示的行数
  • -d 提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果使用者按错键,则会显示 [Press ‘h’ for instructions.] 而不是 ‘哔’ 声
  • -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
  • -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
  • -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
  • -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
  • -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
  • -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
  • +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
  • +num 从第 num 行开始显示
  • fileNames 欲显示内容的文档,可为复数个数
1
[moe@master ~]$ more a.txt 

常用操作命令:

  • Enter 向下n行,需要定义。默认为1行
  • Ctrl+F 向下滚动一屏
  • 空格键 向下滚动一屏
  • Ctrl+B 返回上一屏
  • = 输出当前行的行号
  • :f 输出文件名和当前行的行号
  • V 调用vi编辑器
  • !命令 调用Shell,并执行命令
  • q 退出more

管道

管道:一个命令的输出可以通过管道作为另一个命令的输入

1
[moe@master ~]$ ls ~ -al | more

| 作为这个管道