Linux-文件处理命令

文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln

1.file

使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件, 还是Shell Script文件,或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。

2.mkdir 

用法:mkdir [选项]... 目录...
若指定目录不存在则创建目录。

长选项必须使用的参数对于短选项时也是必需使用的。
  -m, --mode=模式       设置权限模式(类似chmod),而不是rwxrwxrwx 减umask
  -p, --parents         需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理
  -v, --verbose         每次创建新目录都显示信息
  -Z, --context=CTX     将每个创建的目录的SELinux 安全环境设置为CTX
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出

3.grep

用法: grep [选项]... PATTERN [FILE]...
在每个 FILE 或是标准输入中查找 PATTERN。
默认的 PATTERN 是一个基本正则表达式(缩写为 BRE)。
例如: grep -i 'hello world' menu.h main.c

正则表达式选择与解释:
  -E, --extended-regexp     PATTERN 是一个可扩展的正则表达式(缩写为 ERE)
  -F, --fixed-strings       PATTERN 是一组由断行符分隔的定长字符串。
  -G, --basic-regexp        PATTERN 是一个基本正则表达式(缩写为 BRE)
  -P, --perl-regexp         PATTERN 是一个 Perl 正则表达式
  -e, --regexp=PATTERN      用 PATTERN 来进行匹配操作
  -f, --file=FILE           从 FILE 中取得 PATTERN
  -i, --ignore-case         忽略大小写
  -w, --word-regexp         强制 PATTERN 仅完全匹配字词
  -x, --line-regexp         强制 PATTERN 仅完全匹配一行
  -z, --null-data           一个 0 字节的数据行,但不是空行

Miscellaneous:
  -s, --no-messages         suppress error messages
  -v, --invert-match        select non-matching lines
  -V, --version             print version information and exit
      --help                display this help and exit
      --mmap                ignored for backwards compatibility

Output control:
  -m, --max-count=NUM       stop after NUM matches
  -b, --byte-offset         print the byte offset with output lines
  -n, --line-number         print line number with output lines
      --line-buffered       flush output on every line
  -H, --with-filename       print the filename for each match
  -h, --no-filename         suppress the prefixing filename on output
      --label=LABEL         print LABEL as filename for standard input
  -o, --only-matching       show only the part of a line matching PATTERN
  -q, --quiet, --silent     suppress all normal output
      --binary-files=TYPE   assume that binary files are TYPE;
                            TYPE is `binary', `text', or `without-match'
  -a, --text                equivalent to --binary-files=text
  -I                        equivalent to --binary-files=without-match
  -d, --directories=ACTION  how to handle directories;
                            ACTION is `read', `recurse', or `skip'
  -D, --devices=ACTION      how to handle devices, FIFOs and sockets;
                            ACTION is `read' or `skip'
  -R, -r, --recursive       equivalent to --directories=recurse
      --include=FILE_PATTERN  search only files that match FILE_PATTERN
      --exclude=FILE_PATTERN  skip files and directories matching FILE_PATTERN
      --exclude-from=FILE   skip files matching any file pattern from FILE
      --exclude-dir=PATTERN  directories that match PATTERN will be skipped.
  -L, --files-without-match  print only names of FILEs containing no match
  -l, --files-with-matches  print only names of FILEs containing matches
  -c, --count               print only a count of matching lines per FILE
  -T, --initial-tab         make tabs line up (if needed)
  -Z, --null                print 0 byte after FILE name

Context control:
  -B, --before-context=NUM  print NUM lines of leading context
  -A, --after-context=NUM   print NUM lines of trailing context
  -C, --context=NUM         print NUM lines of output context
  -NUM                      same as --context=NUM
      --color[=WHEN],
      --colour[=WHEN]       use markers to highlight the matching strings;
                            WHEN is `always', `never', or `auto'
  -U, --binary              do not strip CR characters at EOL (MSDOS)
  -u, --unix-byte-offsets   report offsets as if CRs were not there (MSDOS)

‘egrep’即‘grep -E’。‘fgrep’即‘grep -F’。
直接使用‘egrep’或是‘fgrep’均已不可行了。
不带 FILE 参数,或是 FILE 为 -,将读取标准输入。如果少于两个 FILE 参数
就要默认使用 -h 参数。如果选中任意一行,那退出状态为 0,否则为 1;
如果有错误产生,且未指定 -q 参数,那退出状态为 2。

4.find

find命令的作用是在目录中搜索文件,它的使用权限是所有用户。

find [path][options][expression] 
path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。

[options]参数: 
-depth:使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容。 

-maxdepth levels:表示至多查找到开始目录的第level层子目录。level是一个非负数,如果level是0的话表示仅在当前目录中查找。 
-mindepth levels:表示至少查找到开始目录的第level层子目录。 

-mount:不在其它文件系统(如Msdos、Vfat等)的目录和文件中查找。 

-version:打印版本。 


[expression]是匹配表达式,是find命令接受的表达式,find命令的所有操作都是针对表达式的。它的参数非常多,这里只介绍一些常用的参数。 

 -name:支持统配符*和?。 

 -atime n:搜索在过去n天读取过的文件。 

 -ctime n:搜索在过去n天修改过的文件。 
 -group grpoupname:搜索所有组为grpoupname的文件。 

 -user 用户名:搜索所有文件属主为用户名(ID或名称)的文件。 

 -size n:搜索文件大小是n个block的文件。 

 -print:输出搜索结果,并且打印。

5.mv

mv命令用来为文件或目录改名,或者将文件由一个目录移入另一个目录中,它的使用权限是所有用户。

mv[options] 源文件或目录 目标文件或目录

[options]主要参数 
-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可以避免误覆盖文件。 
-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。

6.ls

ls命令用于显示目录内容

ls [options][filename] 

options主要参数 
-a, --all:不隐藏任何以“.” 字符开始的项目。 
-A, --almost-all:列出除了“ . ”及 “.. ”以外的任何项目。 

--author:印出每个文件著作者。 
-b, --escape:以八进制溢出序列表示不可打印的字符。 

--block-size=大小:块以指定<大小>的字节为单位。 

-B, --ignore-backups:不列出任何以 ~ 字符结束的项目。 

-f:不进行排序,-aU参数生效,-lst参数失效。 
-F, --classify:加上文件类型的指示符号 (*/=@| 其中一个)。

-g:like -l, but do not list owner。 
-G, --no-group:inhibit display of group information。 

-i, --inode:列出每个文件的inode号。 
-I, --ignore=样式:不印出任何符合Shell万用字符<样式>的项目。 

-k:即--block-size=1K。 

-l:使用较长格式列出信息。 
-L, --dereference:当显示符号链接的文件信息时,显示符号链接所指示的对象,而并非符号链接本身的信息。 
-m:所有项目以逗号分隔,并填满整行行宽。 
-n, --numeric-uid-gid:类似-l,但列出UID及GID号。 

-N, --literal:列出未经处理的项目名称,例如不特别处理控制字符。 

-p, --file-type:加上文件类型的指示符号 (/=@| 其中一个)。 

-Q, --quote-name:将项目名称括上双引号。 

-r, --reverse:依相反次序排列。 
-R, --recursive:同时列出所有子目录层。 

-s, --size:以块大小为序。

7.diff

diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户。

diff [options] 源文件 目标文件

[options]主要参数 
-a:将所有文件当作文本文件来处理。 

-b:忽略空格造成的不同。 

-B:忽略空行造成的不同。 

-c:使用纲要输出格式。 
-H:利用试探法加速对大文件的搜索。 

-I:忽略大小写的变化。 

-n --rcs:输出RCS格式。

8.cmp

cmp(“compare”的缩写)命令用来简要指出两个文件是否存在差异,它的使用权限是所有用户。

cmp[options] 文件名

[options]主要参数 
-l: 将字节以十进制的方式输出,并方便将两个文件中不同的以八进制的方式输出。

9.cat

cat(“concatenate”的缩写)命令用于连接并显示指定的一个和多个文件的有关信息,它的使用权限是所有用户。

cat [options] 文件1 文件2…… 

[options]主要参数 
-n:由第一行开始对所有输出的行数编号。 

-b:和-n相似,只不过对于空白行不编号。 
-s:当遇到有连续两行以上的空白行时,就代换为一行的空白行。

显示内容并编号:cat -n file1 file2

合并内容到第三个文件:cat -b file1 file2 > file3

一个">"为新增,两个">>"为追加

10.ln

ln命令用来在文件之间创建链接,它的使用权限是所有用户。

ln [options] 源文件 [链接名] 

参数 
-f:链结时先将源文件删除。 
-d:允许系统管理者硬链结自己的目录。 

-s:进行软链结(Symbolic Link)。 
-b:将在链结时会被覆盖或删除的文件进行备份。

硬链接:ln file1 file2

软链接:

ln -s file1 file2

ln -s dir1 dir2

猜你喜欢

转载自xujava.iteye.com/blog/2039950