这里介绍Linux下对文件操作的常见命令
文件拷贝:cp命令
概述
该命令的形式如下,其将源文件复制到指定目的地下。当有多个源文件时,目的地为目录文件
1 | cp [option] source dest |
常见可选参数option如下:
- -r: 递归处理。将源目录下的文件与子目录一并复制
拷贝文件
拷贝文件过程中,如果目的文件不存在,其将创建此文件。如果目的文件存在,则会对其覆盖
1 | cp main.c main.c.backup |
Note: 目的文件可以不存在,但是目的文件所在的路径目录必须存在,否则命令将报错
拷贝目录:连同源目录本身进行复制(含隐藏文件)
当源文件指定的是一个目录时,下述命令则可以实现连同源目录本身一并复制到指定目录下。此时源目录中的隐藏文件也将会一并复制过去。注意此时,源目录的名称后面不要添加斜杠。因为添加斜杠的命令后在Mac与Linux中的行为表现不一致。为便于记忆,统一使用下述这种源目录的名称后面不添加斜杠的形式,实现连同源目录本身进行复制的目的
1 | # 将springboot1目录连同源目录本身(含源目录中的隐藏文件)复制到target目录中 |
拷贝目录:只对源目录中的内容进行复制(含隐藏文件)
当源文件指定的是一个目录时,下述命令则可以实现只将源目录中的内容复制到指定目录下。此时源目录中的隐藏文件也将会一并复制过去
1 | # 只将springboot1目录中的内容(含源目录中的隐藏文件)复制到target目录中 |
拷贝目录:只对源目录中的内容进行复制(不含隐藏文件)
当源文件指定的是一个目录时,下述命令则可以实现只将源目录中的内容复制到指定目录下。但不会将源目录中的隐藏文件复制过去
1 | # 只将springboot1目录中的内容(不含源目录中的隐藏文件)复制到target目录中 |
文件移动:mv命令
概述
该命令可以实现将文件、目录移动到指定位置
1 | mv [options] source target |
重命名
在同一个目录下,进行文件或目录移动操作。当目的文件不存在时,本质上就是对其重命名操作
1 | # 将当前目录下的main.c文件,重命名为 main.java |
移动文件
在移动文件的同时,还可以对其进行重命名
1 | # 将当前目录下的 usrMapper.java文件 移动 src目录下 |
移动目录:连同源目录本身进行移动(含隐藏文件)
当源文件指定的是一个目录时,下述命令则可以实现连同源目录本身一并移动到指定目录下。此时源目录中的隐藏文件也将会一并移动过去
1 | # 将springboot1目录连同源目录本身(含源目录中的隐藏文件)移动到target目录中 |
移动目录:只对源目录中的内容进行移动(不含隐藏文件)
当源文件指定的是一个目录时,下述命令则可以实现只将源目录中的内容移动到指定目录下。但不会将源目录中的隐藏文件移动过去
1 | # 只将springboot1目录中的内容(不含源目录中的隐藏文件)移动到target目录中 |
创建目录:mkdir命令
概述
该命令创建目录
1 | mkdir [-pv] [-m mode] directory_name ... |
常用选项:
- -p:批量创建目录、子目录
- -v:显示创建的目录
- -m:指定目录权限
创建目录
创建目录,命令如下
1 | # 创建名为foo的目录,目录权限为707 |
利用-p选项则可以快速的创建一系列的子目录
1 | # 依次创建出 src、main、java 的父子目录结构 |
查看文件
查看文件类型:file命令
利用file命令可以判断出文件类型、编码等信息
1 | # 分析指定文件的文件类型 |
对于二进制可执行文件而言,file还可以分析出其编译所面向的平台及依赖库等信息
1 | # 分析ls可执行文件 |
查看文件整个内容
cat、tac命令
cat命令支持查看整个文件。但其会一次性将文件的内容全部输出完毕
1 | # 查看整个文件 |
tac命令与cat命令类似,只不过其是将文件内容按行反序全部进行输出的。即输出的第一行为文件内容的最后一行,以此类推
1 | # 按行反序查看整个文件 |
more、less命令
cat命令的缺点在于命令执行后无法控制后续操作。而more命令则会在输出每页内容后暂停下来。常用地浏览操作有:通过键盘的j、k键即可进行往后、往前浏览整个文件。结束后,可按q键退出即可。而less命令则是more命令的升级版,其支持更多的文件浏览操作
1 | # 查看passwd文件 |
查看文件部分内容
head命令
head命令可以实现查看文件的头部。默认显示文件的前10行
1 | # 显示文件的前10行 |
tail命令
tail命令可以实现查看文件的尾部。默认显示文件的最后10行
1 | # 显示文件的最后10行 |
此外在开发中,查看日志文件时,常用使用 -f 选项,其会把文件的最尾部的内容不断刷新输出。实现实时查看日志文件
1 | # 实时查看文件 |
参考文献
- Linux命令行与shell脚本编程大全·第4版 Richard Blum、Christine Bresnahan著