由于文件管理的命令比较多,命令的选项也比较多,结合我自身的实际情况,本文只记录一些不熟悉的,以供自己闲时阅读。
一:diff命令
该命令用来比较文件的差异。diff以逐行的方式比较文本文件的异同,如果指定的是目录,则diff会比较目录中相同文件名的文件,但不会比较其中的子目录。
选项 | 说明 |
-c | 显示全部内容,并标出不同之处 |
-b | 忽略行尾的空格,同时字符串的一个或多个空格将视为相同 |
-r | 当文件1和文件2为目录时,会比较子目录中的文件 |
-s | 当两个文件相同时,显示文件的相同信息 |
二:file命令
该命令用来显示文件的类型。对于长度为0的文件,将识别为空文件;对于符号链接文件,默认情况下将显示符号链接引用的真实文件路径。其格式如下:
file [选项] 文件名
选项 | 说明 |
-b | 显示文件类型结果,不显示文件名称 |
-L | 直接显示符号链接所指向的文件类型 |
-z | 显示压缩文件的信息 |
-i | 如果文件不是常规文件,则不进一步对文件类型进行分类 |
三:find命令
用来在指定的路径下查找指定的文件。其格式如下:
find path-name [-options] [-print -exec -ok命令 {} \;]
选项 | 说明 |
-name ‘字符串’ | 查找文件名匹配所给字符串的所有文件,字符串内可用通配符*、?、[] |
-lname ‘字符串’ | 查找文件名匹配所给字符串的所有符号链接文件,字符串可使用通配符 |
-gid n | 查看属于ID号为n的用户组的所有文件 |
-uid n | 查找属于ID号为n的用户的所有文件 |
empty | 查找大小为0的目录或文件 |
-path ‘字符串’ | 查找路径名匹配所给字符串的所有文件,字符串可用通配符 |
-group ‘字符串’ | 查找用户用户组为所给字符串的所有的文件 |
-depth | 在查找文件时,首先查找当前目录,然后再查找子目录下的文件 |
-prune目录 | 指出搜索时不搜索该目录,如果同时和-depth一起使用,那么其将被忽略 |
-size n | 查找文件长度为n块的文件,带有c时表示文件长度以字节计 |
-user ‘字符串’ | 查找属于用户名为所给字符串的所有的文件 |
-mtime +n或-n | 按时间搜索,+n表示n天之前,-n表示今天到n天之间 |
-type 文件类型 | 按指定文件类型搜索。文件类型包括:b块设备文件,c字符设备文件,f普通文件,l符号链接,d目录,p管道,s(socket文件) |
l -print 将搜索结果输出到标准输出
l -exec 对搜索出符合条件的文件执行所给出的linux命令,而不询问用户是否执行该命令,{}表示shell命令的选项即为所查找到的文件。命令的末尾必须以“:”结束。
l -ok 对搜索出符合条件的文件执行所给出的linux命令。与-exec命令不同的是,它会询问用户是否执行该命令。
举例:
n 在系统根目录下,查找文件类型为普通文件,属于ixdba用户,两天以前,并且查找是不包含/usr/bin目录下的文件名为main.c的文件,并将结果输出到屏幕。
find / -path “/usr/bin” -prune -o -name “main.c” -user ixdba -type f -mtime +2 -print
n 对上例中搜索的结果进行删除操作
find / -path “/usr/bin” -prune -o -name “main.c” -user ixdba -type f -mtime +2 -print-exec rm {} \;
四:split命令
用来分隔文档,将一个文件拆分成多个。格式如下:
split [选项] [input_file] [out_file]
选项 | 说明 |
-b size | 指定分割出来的文件大小,size可加入大小,b代表512字节, |
-n | 指定分割的每个文件的长度,默认为1000行 |
-d | 将split命令生成的文件序列以数字形式命名 |
-a | 指定split命令生成的文件序列的长度,默认长度为2 |
举例:
n 将access_log文件进行分割,设定每个分割文件的大小为10MB
split -b 10M access_log access_log_bak
执行完毕后,在当前目录会生成 access_log_bakaa,access_log_bakab,access_log_bakac等分割文件,每个文件的大小为10M
n 将/tmp/etc.zip文件进行分割,指定每个文件的大小为2MB,输出文件序列以数字形式显示,序列长度为3;
split -b 2M -d -a 3 /tmp/etc.zip /tmp/etc.zip_bak
结果是etc.zip_bak001,etc.zip_bak002,etc.zip_bak003等,每个文件大小为2MB
如果想查看更多,更关注公众号:我要一幕天