`

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

 

分享到:
评论

相关推荐

    Linux常用命令教学视频

    04.1.1 Linux常用命令-文件处理命令-命令格式与目录处理命令ls.mp4 04.1.2 Linux常用命令-文件处理命令-目录处理命令.mp4 04.1.3 Linux常用命令-文件处理命令-文件处理命令.mp4 04.1.4 Linux常用命令-文件处理...

    jdk-8u171-linux-x64.rpm/jdk-8u171-linux-x64.tar.gz

    首先,`jdk-8u171-linux-x64.rpm`是一个RPM(Red Hat Package Manager)格式的文件,主要用于基于RPM包管理系统的Linux发行版,如Fedora、CentOS或Red Hat Enterprise Linux。RPM包提供了方便的安装、升级和卸载功能...

    arm-linux-gnueabihf-gcc-linaro-7.5.0-x86_64.tar.xz.zip

    1. 解压缩文件:使用`unzip`命令解压zip文件,然后用`tar -xf`命令解压tar.xz文件。 2. 安装到系统路径:通常,用户会将编译器安装到`/usr/local`或自定义目录下,通过运行类似`sudo make install`的命令。 3. 设置...

    mipsel-linux-gcc4.4.0.tgz

    4. 开发与编译:有了交叉编译器,开发者可以使用`mipsel-linux-gcc`命令来编译针对MIPSel Linux系统的C/C++代码,生成可执行文件。 5. 软件部署:将编译好的二进制文件部署到实际的MIPSel Linux设备上运行,或者...

    jdk-8u261-linux-x64.tar linux jdk

    在Linux环境中,用户可以使用`tar -zxvf jdk-8u261-linux-x64.tar.gz`命令来解压文件,之后通常会得到一个名为`jdk1.8.0_261`的目录,其中包含了所有必要的JDK组件。 标签 "jdk-8u261-linux-" 和 "jdk8" 强调了这是...

    jdk-8u162-linux-x64.tar.zip

    标题中的“jdk-8u162-linux-x64.tar.zip”揭示了这是一个与Java开发工具包(JDK)相关的文件,特别指出是版本8的更新162(u162),针对Linux操作系统的64位架构。JDK是Java编程语言的核心组件,包含了编译器、调试器...

    Linux 文件处理命令

    本文将详细介绍几个常用的Linux文件处理命令,包括`file`、`mkdir`、`grep`以及`dd`,并提供实际应用场景示例,以便更好地理解这些命令的功能及其用法。 #### 二、`file`命令 **1. 作用** `file`命令用于通过检测...

    jdk-8u91-linux-x64.tar.gz

    - 在Linux环境下,用户通常需要使用`tar`命令来解压这个文件,例如:`tar -zxvf jdk-8u91-linux-x64.tar.gz`。 - 解压后,用户需要将JDK的路径添加到环境变量`PATH`中,以便系统可以在任何目录下执行Java命令。 5...

    Linux必须学会的60个命令---文件处理

    Linux系统信息存放在文件里,文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息,如文件的用户、文件的大小等。文件可以是一封信、一个通讯录...这里主要介绍常用的文件处理命令。

    peak-linux-driver-8.15.1.tar.gz

    1. 解压文件:使用`tar -zxvf peak-linux-driver-8.15.1.tar.gz`命令解压下载的压缩包。 2. 配置驱动:进入解压后的目录,执行`./configure`命令,根据系统配置进行自动检测和设置。 3. 编译驱动:运行`make`命令...

    jdk-8u411-linux-aarch64.tar.gz

    在Linux环境下,通常会使用tar命令来提取这种类型的文件,先用gunzip解压gz文件,然后用tar -xvf命令来展开tar文件。这一步骤是安装JDK的前提,因为原始的压缩包需要被提取到一个特定的目录,通常是/usr/lib/jvm或者...

    Linux基础知识与系统管理教学课件-pdf.rar

    4.1.1 Linux常用命令-文件处理命令-命令格式与目录处理命令ls 4.1.2 Linux常用命令-文件处理命令-目录处理命令 4.1.3 Linux常用命令-文件处理命令-文件处理命令 4.1.4 Linux常用命令-文件处理命令-链接命令 4.2.1 ...

    jdk-8u221-linux-x64.tar.gz

    解压这个文件通常需要使用`tar -zxvf jdk-8u221-linux-x64.tar.gz`这样的命令。 在标签中,我们看到了“linux”和“java”。这意味着该主题与Linux操作系统以及Java编程语言紧密相关。Linux是开源的、类Unix的操作...

    Linux--tar命令.doc

    Linux中的`tar`命令是一个非常重要的工具,用于创建、管理和提取档案文件。它允许用户将多个文件和目录打包成一个单一的文件,便于备份、存储和传输。在Linux环境中,`tar`命令广泛用于系统维护和数据管理。 `tar`...

    jdk-8u231-linux-x64.tar.zip

    描述中提到的"解压及位tar.gz包"指示了处理这个文件的步骤。首先,需要使用tar命令来解压gz格式的文件。在终端中,可以使用以下命令: ```bash tar -zxvf jdk-8u231-linux-x64.tar.gz ``` 这将解压缩出一个名为...

    jdk11 java11 linux版 jdk-11.0.2_linux-x64_bin.tar.zip

    - 解压:在Linux终端中,使用`unzip jdk-11.0.2_linux-x64_bin.tar.zip`命令解压文件,然后用`tar -zxvf jdk-11.0.2_linux-x64_bin.tar.gz`解压tar文件。 - 配置环境变量:在`~/.bashrc`或`~/.bash_profile`文件中...

    最新版linux jdk-8u241-linux-x64.tar.gz 64位

    1. **下载文件**:通过wget命令或者浏览器下载`jdk-8u241-linux-x64.tar.gz`到你的Linux系统。 2. **切换到目标目录**:通常,开发者会在`/opt`或`/usr/local`目录下创建一个名为`java`的文件夹,然后切换到该目录...

    jdk-8u151-linux-x64.tar.gz

    2. 使用tar命令解压文件,例如:`tar -zxvf jdk-8u151-linux-x64.tar.gz`。 3. 将解压后的目录移动到一个合适的系统目录,如/usr/lib/jvm。 4. 更新系统环境变量,如JAVA_HOME,并在PATH中添加JDK的bin目录。 5. ...

    jdk-8u162-linux-x64.tar.gz.zip

    "zip"是另一种跨平台的文件压缩格式,常见于Windows系统,但也可以在Linux中处理。这里文件名结尾有".zip",意味着这个".tar.gz"文件被进一步压缩成了ZIP格式,可能是为了适应更广泛的解压工具或场景。 标签"jdk...

    Linux基础知识与系统管理视频.rar

    4.1.1 Linux常用命令-文件处理命令-命令格式与目录处理命令ls 4.1.2 Linux常用命令-文件处理命令-目录处理命令 4.1.3 Linux常用命令-文件处理命令-文件处理命令 4.1.4 Linux常用命令-文件处理命令-链接命令 4.2.1 ...

Global site tag (gtag.js) - Google Analytics