文件管理
列出当前文件
ls [optional] [file/dir]
命令 | 描述 |
---|---|
ls | 列出当前目录下所有文件和目录 |
ls file | 列出文件项 |
ls dir | 列出目录下的所有文件项 |
选项 | 描述 |
---|---|
-F | 列出的如果是目录则在名字后以斜线/表示,可执行文件*,符号连接文件@,普通文件无标记 |
-l | 以长格式显示信息 |
-a | 列出文件名首字符为圆点的文件,默认情况下不列出 |
-A | 与-a类似,不列出.和.. |
-s | 列出文件占用的磁盘空间 |
-i | 列出文件的i节点号 |
-h | 以便于人阅读的方式打印数值 |
-d | 当ls参数是目录时,列出目录自身信息 |
长格式列表
input
: ls -l argoutput
: -rwxr-x–x 1 liang stud 519 Jul 5 15:02 arg
- 第一列:文件属性: 文件类型+文件的访问权限(rwx)(用户,与用户同组的用户,与该用户不同组的用户)
符号 | 文件类型 |
---|---|
- | 普通文件 |
d | 目录 |
l | 符号连接文件 |
b | 块设备文件 |
c | 字符设备文件 |
p | 命名管道文件 |
第二列: 文件link数,涉及到此文件的目录项数
第3,4列: 用户名,该用户所在的组
第5列
文件类别 | 描述 |
---|---|
普通文件 | 列出文件大小 |
目录 | 列出目录表大小 |
符号连接文件 | 列出符号连接文件自身的长度 |
字符设备和块设备 | 列出主次设备号 |
管道文件 | 列出管道的数据长度 |
第6列: 文件最后一次被修改的日期和时间
第7列: 文件名,对于符号连接文件,附带列出符号连接文件的内容
文件的复制与删除
拷贝文件
cp file1 file2 或者 cp file1 file2… filen dir
- 第二种格式,dir必须存在并且是目录
- 第一种格式,file2不存在,则创建;file2存在且是文件,则覆盖,若是目录则按格式2处理。
移动文件
mv file1 file2 or mv file1 file2…filen dir or mv dir1 dir2
- 使用mv命令可以将文件和目录改名
- 可以将文件和从子目录从一个目录移动到另一个目录
删除文件
rm file1 file2…filen
选项 | 描述 |
---|---|
-r | recursive 递归地删除实参表中的目录 |
-i | inform 没删除一个文件需要操作员确认 |
-f | force 强迫删除,只读文件也被删除并且无提示 |
文件打包命令
tar ctxv [f device] file-list
选项 | 描述 | ||
---|---|---|---|
-c | create 创建新磁带,以前创建的会被覆盖 | ||
-t | table 磁带的文件名列表。当不指定文件名时,将列出所有文件 | ||
-x | eXtract 从磁带中抽取指定的文件,当不指定文件名时,抽取所有文件 | -v | verbose 每处理一个文件,就打印出文件的文件名,并在该文件名前冠以功能字母 |
f | File指定设备文件名 | ||
z | gzip 采用gzip压缩格式 | ||
j | 采用bzip2算法 |
e.g. tar cvf my.tar *.[ch] makefile
e.g. tar czvf my.tar.gz *[ch] makefile
e.g. tar cjvf my.tar.bz2 *[ch] makefile
其他压缩/解压命令:
- gzip/gunzip 执行速度快
- bzip2/bunzip2 占用较多的cpu时间
目录操作
打印/改变当前目录
命令 | 描述 |
---|---|
pwd | print work directory 打印当前工作目录 |
cd dir | 切换至dir |
cd | windows 打印当前目录,linux回到用户主目录 |
cd .. | 回到上层目录 |
创建/删除目录
mkdir sun/work.d
- -p 自动创建路径不存在的目录 mkdir -p database/2019/09/04/log
rmdir sum/work.d
- 要求被删除的目录除.与..外无其他文件或目录
- -r 递归的删除目录及其子目录?
复制目录
cp -r dir1 dir2
- dir2 不存在,新建目录dir2,把dir1下内容拷贝至dir2下
- dir2已存在,在dir2目录下新建dir1,把dir1内容拷贝纸dir2/dir1下
- -v 实时显示正在复制的文件的名字
- -u 增量拷贝,便于备份目录, 根据文件的时间戳,不拷贝相同的或者过时的版本文件,以提高拷贝速度。
touch
将文件最后一次修改时间设置为当前时间,但不改变文件。 touch *.[ch]
目录遍历 find
- 功能: 从指定的查找范围开始,递归地查找子目录,凡满足条件的文件或者目录,执行规定的动作。
- 动作
动作 | 描述 |
---|---|
打印查找的文件的路径名 | |
-exec | 对查找的目标执行某一命令 在-exec及随后的分号之间的内容作为一条命令,{}代表遍历道德目标文件的路径名 |
-ok | 只是对查找到符合条件的目标执行前需要管理人员确认 |
xxx | 自定义命令 |
- 条件
命令 | 描述 |
---|---|
-name wildcard | 文件名与wildcare匹配,必须引号,文件名指的是路径名的最后一部分 ,对通配符的解释由find完成 |
-regex pattern | 整个路径名 与正则表达式pattern匹配 |
-type f/d/l/c/b/p | 文件类型 |
-size +, , - N | 文件大小,+ 大于,- 小于, 单位b,k,M |
-mtime +, ,- ndays | 文件最近修改时间 |
-newer file | 文件修改时间比file的修改时间还晚 |
() -o ! 表示多条件的“与”,“或”,”非”
示例: find verl.d ver2.d -name ‘*.c’ -print
- 范围: 当前目录的子目录ver1.d和ver2.d
- 条件: 与名字.c匹配。注:.c应当用引号括起来
- 动作: 把查找的文件的路径打印出来