Linux 文件管理命令语法、参数、实例全汇总(一)

Stella981
• 阅读 691

命令:cat

cat 命令用于连接文件并打印到标准输出设备上。

使用权限

所有使用者

语法格式

cat [-AbeEnstTuv] [--help] [--version] fileName

参数说明

  • -n 或 --number:由 1 开始对所有输出的行数编号。

  • -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。

  • -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。

  • -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。

  • -E 或 --show-ends : 在每行结束处显示 $。

  • -T 或 --show-tabs: 将 TAB 字符显示为 ^I。

  • -e : 等价于 -vE。

  • -A, --show-all:等价于 -vET。

  • -e:等价于"-vE"选项;

  • -t:等价于"-vT"选项;

实例

把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:

cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:

cat -b textfile1 textfile2 >> textfile3

清空 /etc/test.txt 文档内容:

cat /dev/null > /etc/test.txt

cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:

cat /dev/fd0 > OUTFILE

相反的,如果想把 image file 写到软盘,输入:

cat IMG_FILE > /dev/fd0

注:

  1. OUTFILE 指输出的镜像文件名。

  2. IMG_FILE 指镜像文件。

  3. 若从镜像文件写回 device 时,device 容量需与相当。

  4. 通常用制作开机磁片。

命令:chattr

Linux chattr命令用于改变文件属性。

这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:

  1. 让文件或目录仅供附加用途。

  2. 不更新文件或目录的最后存取时间。

  3. 将文件或目录压缩后存放。

  4. 将文件或目录排除在倾倒操作之外。

  5. 不得任意更动文件或目录。

  6. 保密性删除文件或目录。

  7. 即时更新文件或目录。

  8. 预防意外删除。

语法格式

chattr [-RV][-v<版本编号>][+/-/=<属性>][文件或目录...]

参数说明

  • -R 递归处理,将指定目录下的所有文件及子目录一并处理。

  • -v<版本编号> 设置文件或目录版本。

  • -V 显示指令执行过程。

  • +<属性> 开启文件或目录的该项属性。

  • -<属性> 关闭文件或目录的该项属性。

  • =<属性> 指定文件或目录的该项属性。

实例

用chattr命令防止系统中某个关键文件被修改:

chattr +i /etc/resolv.conf

lsattr /etc/resolv.conf

会显示如下属性

----i-------- /etc/resolv.conf

让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:

chattr +a /var/log/messages

命令:chgrp

Linux chgrp命令用于变更文件或目录的所属群组。

在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。

语法格式

chgrp [-cfhRv][--help][--version][所属群组][文件或目录...] 或 chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]

参数说明

  • -c或--changes 效果类似"-v"参数,但仅回报更改的部分。

  • -f或--quiet或--silent  不显示错误信息。

  • -h或--no-dereference  只对符号连接的文件作修改,而不更动其他任何相关文件。

  • -R或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理。

  • -v或--verbose  显示指令执行过程。

  • --help  在线帮助。

  • --reference=<参考文件或目录>  把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。

  • --version  显示版本信息。

实例

实例1:改变文件的群组属性:

chgrp -v bin log2012.log

输出:

[root@localhost test]# ll

---xrw-r-- 1 root root 302108 11-13 06:03 log2012.log

[root@localhost test]# chgrp -v bin log2012.log

"log2012.log" 的所属组已更改为 bin

[root@localhost test]# ll

---xrw-r-- 1 root bin  302108 11-13 06:03 log2012.log

说明: 将log2012.log文件由root群组改为bin群组

实例2:根据指定文件改变文件的群组属性

chgrp --reference=log2012.log log2013.log

输出:

[root@localhost test]# ll

---xrw-r-- 1 root bin  302108 11-13 06:03 log2012.log

-rw-r--r-- 1 root root     61 11-13 06:03 log2013.log

[root@localhost test]#  chgrp --reference=log2012.log log2013.log 

[root@localhost test]# ll

---xrw-r-- 1 root bin  302108 11-13 06:03 log2012.log

-rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log

说明: 改变文件log2013.log 的群组属性,使得文件log2013.log的群组属性和参考文件log2012.log的群组属性相同

命令:chmod

Linux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。利用 chmod 可以藉以控制文件如何被他人所调用。

使用权限

所有使用者

语法格式

chmod [-cfvR] [--help] [--version] mode file...

参数说明

mode : 权限设定字串,格式如下 :

[ugoa...][[+-=][rwxX]...][,...]

其中:

  • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。

  • + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

  • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

其他参数说明

  • -c : 若该文件权限确实已经更改,才显示其更改动作

  • -f : 若该文件权限无法被更改也不要显示错误讯息

  • -v : 显示权限变更的详细资料

  • -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

  • --help : 显示辅助说明

  • --version : 显示版本

实例

将文件 file1.txt 设为所有人皆可读取 :

chmod ugo+r file1.txt

将文件 file1.txt 设为所有人皆可读取 :

chmod a+r file1.txt

将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

chmod ug+w,o-w file1.txt file2.txt

将 ex1.py 设定为只有该文件拥有者可以执行 :

chmod u+x ex1.py

将目前目录下的所有文件与子目录皆设为任何人可读取 :

chmod -R a+r *

此外chmod也可以用数字来表示权限如 :

chmod 777 file

语法为:

chmod abc file

其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

r=4,w=2,x=1

  • 若要rwx属性则4+2+1=7;

  • 若要rw-属性则4+2=6;

  • 若要r-x属性则4+1=5。

chmod a=rwx file

chmod 777 file

效果相同

chmod ug=rwx,o=x file

chmod 771 file

效果相同

若用chmod 4755 filename可使此程序具有root的权限

命令:chown

Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。 。

一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限可以自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。

使用权限

root

语法格式

chown [-cfhvR] [--help] [--version] user[:group] file...

参数说明

  • user : 新的文件拥有者的使用者 ID

  • group : 新的文件拥有者的使用者群体(group)

  • -c : 若该文件拥有者确实已经更改,才显示其更改动作

  • -f : 若该文件拥有者无法被更改也不要显示错误讯息

  • -h : 只对于连结(link)进行变更,而非该 link 真正指向的文件

  • -v : 显示拥有者变更的详细资料

  • -R : 对目前目录下的所有文件与子目录进行相同的拥有者变更(即以递回的方式逐个变更)

  • --help : 显示辅助说明

  • --version : 显示版本

实例

将文件 file1.txt 的拥有者设为 users 群体的使用者 jessie :

chown jessie:users file1.txt

将目前目录下的所有文件与子目录的拥有者皆设为 users 群体的使用者 lamport :

chown -R lamport:users *

命令:cksum

Linux cksum命令用于检查文件的CRC是否正确。确保文件从一个系统传输到另一个系统的过程中不被损坏。

CRC是一种排错检查方式,该校验法的标准由CCITT所指定,至少可检测到99.998%的已知错误。

指定文件交由指令"cksum"进行校验后,该指令会返回校验结果供用户核对文件是否正确无误。若不指定任何文件名称或是所给予的文件名为"-",则指令"cksum"会从标准输入设备中读取数据。

语法格式

cksum [--help][--version][文件...]

参数说明

  • --help:在线帮助。

  • --version:显示版本信息。

  • 文件…:需要进行检查的文件路径

实例

使用指令"cksum"计算文件"testfile1"的完整性,输入如下命令:

$ cksum testfile1

以上命令执行后,将输出校验码等相关的信息,具体输出信息如下所示:

1263453430 78 testfile1         //输出信息 

上面的输出信息中,"1263453430"表示校验码,"78"表示字节数。

注意:如果文件中有任何字符被修改,都将改变计算后CRC校验码的值。

命令:cmp

Linux cmp命令用于比较两个文件是否有差异。

当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有所差异,预设会标示出第一个不同之处的字符和列数编号。若不指定任何文件名称或是所给予的文件名为"-",则cmp指令会从标准输入设备读取数据。

语法格式

cmp [-clsv][-i <字符数目>][--help][第一个文件][第二个文件]

参数说明

  • -c或--print-chars  除了标明差异处的十进制字码之外,一并显示该字符所对应字符。

  • -i<字符数目>或--ignore-initial=<字符数目>  指定一个数目。

  • -l或--verbose  标示出所有不一样的地方。

  • -s或--quiet或--silent  不显示错误信息。

  • -v或--version  显示版本信息。

  • --help  在线帮助。

实例

要确定两个文件是否相同,请输入:

cmp prog.o.bak prog.o 

这比较 prog.o.bak 和 prog.o。如果文件相同,则不显示消息。如果文件不同,则显示第一个不同的位置;例如:

prog.o.bak prog.o differ: char 4, line 1 

如果显示消息 cmp: EOF on prog.o.bak,则 prog.o 的第一部分与 prog.o.bak 相同,但在 prog.o 中还有其他数据。

命令:diff

Linux diff命令用于比较文件的差异。

diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。

语法格式

diff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]

参数说明

  • -<行数>  指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。

  • -a或--text  diff预设只会逐行比较文本文件。

  • -b或--ignore-space-change  不检查空格字符的不同。

  • -B或--ignore-blank-lines  不检查空白行。

  • -c  显示全部内文,并标出不同之处。

  • -C<行数>或--context<行数>  与执行"-c-<行数>"指令相同。

  • -d或--minimal  使用不同的演算法,以较小的单位来做比较。

  • -D<巨集名称>或ifdef<巨集名称>  此参数的输出格式可用于前置处理器巨集。

  • -e或--ed  此参数的输出格式可用于ed的script文件。

  • -f或-forward-ed  输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。

  • -H或--speed-large-files  比较大文件时,可加快速度。

  • -l<字符或字符串>或--ignore-matching-lines<字符或字符串>  若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。

  • -i或--ignore-case  不检查大小写的不同。

  • -l或--paginate  将结果交由pr程序来分页。

  • -n或--rcs  将比较结果以RCS的格式来显示。

  • -N或--new-file  在比较目录时,若文件A仅出现在某个目录中,预设会显示:

  • Only in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。

  • -p  若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。

  • -P或--unidirectional-new-file  与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。

  • -q或--brief  仅显示有无差异,不显示详细的信息。

  • -r或--recursive  比较子目录中的文件。

  • -s或--report-identical-files  若没有发现任何差异,仍然显示信息。

  • -S<文件>或--starting-file<文件>  在比较目录时,从指定的文件开始比较。

  • -t或--expand-tabs  在输出时,将tab字符展开。

  • -T或--initial-tab  在每行前面加上tab字符以便对齐。

  • -u,-U<列数>或--unified=<列数>  以合并的方式来显示文件内容的不同。

  • -v或--version  显示版本信息。

  • -w或--ignore-all-space  忽略全部的空格字符。

  • -W<宽度>或--width<宽度>  在使用-y参数时,指定栏宽。

  • -x<文件名或目录>或--exclude<文件名或目录>  不比较选项中所指定的文件或目录。

  • -X<文件>或--exclude-from<文件>  您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件。

  • -y或--side-by-side  以并列的方式显示文件的异同之处。

  • --help  显示帮助。

  • --left-column  在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。

  • --suppress-common-lines  在使用-y参数时,仅显示不同之处。

实例

实例1:比较两个文件

[root@localhost test3]# diff log2014.log log2013.log 

3c3

< 2014-03

---

> 2013-03

8c8

< 2013-07

---

> 2013-08

11,12d10

< 2013-11

< 2013-12

上面的"3c3"和"8c8"表示log2014.log和log20143log文件在3行和第8行内容有所不同;"11,12d10"表示第一个文件比第二个文件多了第11和12行。

实例2:并排格式输出

[root@localhost test3]# diff log2014.log log2013.log  -y -W 50

2013-01                 2013-01

2013-02                 2013-02

2014-03               | 2013-03

2013-04                 2013-04

2013-05                 2013-05

2013-06                 2013-06

2013-07                 2013-07

2013-07               | 2013-08

2013-09                 2013-09

2013-10                 2013-10

2013-11               <

2013-12               <

[root@localhost test3]# diff log2013.log log2014.log  -y -W 50

2013-01                 2013-01

2013-02                 2013-02

2013-03               | 2014-03

2013-04                 2013-04

2013-05                 2013-05

2013-06                 2013-06

2013-07                 2013-07

2013-08               | 2013-07

2013-09                 2013-09

2013-10                 2013-10

                      > 2013-11

                      > 2013-12

说明:

  • "|"表示前后2个文件内容有不同

  • "<"表示后面文件比前面文件少了1行内容

  • ">"表示后面文件比前面文件多了1行内容

命令:diffstat

Linux diffstat命令根据diff的比较结果,显示统计数字。

diffstat读取diff的输出结果,然后统计各文件的插入,删除,修改等差异计量。

语法格式

diff [-wV][-n <文件名长度>][-p <文件名长度>]

参数说明

  • -n<文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

  • -p<文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。

  • -w  指定输出时栏位的宽度。

  • -V  显示版本信息。

实例

用户也可以直接使用"|"将diff指令所输出的结果直接送给diffstat指令进行统计结果的显示。

使用该指令时,若所比较的文件或者子目录不在当前目录下,则应该使用其完整路径。

将目录"test1"和"test2"下的同名文件"testf.txt"使用diff指令进行比较。然后使用diffstat指令对结果进行统计显示,输入如下命令:

$ diff test1 test2 | diffstat   #进行比较结果的统计显示

注意:使用这条命令可以非常方便地实现统计显示的功能。

对于查看文件中的内容,用户可以通过指令"cat"进行查看即可,具体操作如下:

$ cat test1/testf.txt           #查看test1/testf的内容  

abc  

def  

ghi  

jkl  

mno  

pqr  

stu  

vws  

$ cat test2/testf.txt           #查看test2/testf的内容  

abc  

def  

ghi  

jkl  

mno

从上面的文件内容显示,可以看到两个文件内容的差别。现在来运行刚才的命令,对文件比较的结果进行统计显示,结果如下:

testfile | 2 +-             #统计信息输出显示  

1 file changed, 1 insertion(+), 1 deletion(-)

命令:file

Linux file命令用于辨识文件类型。

通过file指令,我们得以辨识该文件的类型。

语法格式

file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]

参数说明

  • -b  列出辨识结果时,不显示文件名称。

  • -c  详细显示指令执行过程,便于排错或分析程序执行的情形。

  • -f<名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。

  • -L  直接显示符号连接所指向的文件的类别。

  • -m<魔法数字文件>  指定魔法数字文件。

  • -v  显示版本信息。

  • -z  尝试去解读压缩文件的内容。

  • [文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

实例

显示文件类型:

[root@localhost ~]# file install.log

install.log: UTF-8 Unicode text

[root@localhost ~]# file -b install.log      <== 不显示文件名称

UTF-8 Unicode text

[root@localhost ~]# file -i install.log      <== 显示MIME类别。

install.log: text/plain; charset=utf-8

[root@localhost ~]# file -b -i install.log

text/plain; charset=utf-8

显示符号链接的文件类型

[root@localhost ~]# ls -l /var/mail

lrwxrwxrwx 1 root root 10 08-13 00:11 /var/mail -> spool/mail

[root@localhost ~]# file /var/mail

/var/mail: symbolic link to `spool/mail'

[root@localhost ~]# file -L /var/mail

/var/mail: directory

[root@localhost ~]# file /var/spool/mail

/var/spool/mail: directory

[root@localhost ~]# file -L /var/spool/mail

/var/spool/mail: directory

命令:find

Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

语法格式

find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} ;

参数说明

find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。

expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。

  • -mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件

  • -amin n : 在过去 n 分钟内被读取过

  • -anewer file : 比文件 file 更晚被读取过的文件

  • -atime n : 在过去 n 天过读取过的文件

  • -cmin n : 在过去 n 分钟内被修改过

  • -cnewer file :比文件 file 更新的文件

  • -ctime n : 在过去 n 天过修改过的文件

  • -empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name

  • -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写

  • -name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写

  • -size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。-type c : 文件类型是 c 的文件。

  • d: 目录

  • c: 字型装置文件

  • b: 区块装置文件

  • p: 具名贮列

  • f: 一般文件

  • l: 符号连结

  • s: socket

  • -pid n : process id 是 n 的文件

你可以使用 ( ) 将运算式分隔,并使用下列运算。

exp1 -and exp2

! expr

-not expr

exp1 -or exp2

exp1, exp2

实例

将目前目录及其子目录下所有延伸档名是 c 的文件列出来。

# find . -name "*.c"

将目前目录其其下子目录中所有一般文件列出

# find . -type f

将目前目录及其子目录下所有最近 20 天内更新过的文件列出

# find . -ctime -20

查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们:

$ find /var/logs -type f -mtime +7 -ok rm { } ;

查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:

$ find . -type f -perm 644 -exec ls -l { } ;

为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径:

$ find / -type f -size 0 -exec ls -l { } ;

查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们:

$ find /var/logs -type f -mtime +7 -ok rm { } ;

命令:git

Linux git命令是文字模式下的文件管理员。

git是用来管理文件的程序,它十分类似DOS下的Norton Commander,具有互动式操作界面。它的操作方法和Norton Commander几乎一样。

语法格式

git

操作说明:

  • F1 :执行info指令,查询指令相关信息,会要求您输入欲查询的名称。

  • F2 :执行cat指令,列出文件内容。

  • F3 :执行gitview指令,观看文件内容。

  • F4 :执行vi指令,编辑文件内容。

  • F5 :执行cp指令,复制文件或目录,会要求您输入目标文件或目录。

  • F6 :执行mv指令,移动文件或目录,或是更改其名称,会要求您输入目标文件或目录。

  • F7 :执行mkdir指令,建立目录。

  • F8 :执行rm指令,删除文件或目录。

  • F9 :执行make指令,批处理执行指令或编译程序时,会要求您输入相关命令。

  • F10 :离开git文件管理员。

命令:gitview

Linux gitview命令用于观看文件的内容,它会同时显示十六进制和ASCII格式的字码。

语法格式

gitview [-bchilv][文件]

参数说明

  • -b  单色模式,不使用ANSI控制码显示彩色。

  • -c  彩色模式,使用ANSI控制码显示色彩。

  • -h  在线帮助。

  • -i  显示存放gitview程序的所在位置。

  • -l  不使用先前的显示字符。

  • -v  显示版本信息。

实例

使用指令gitview以彩色模式观看文件"/home/ rootlocal/demo.txt"中的内容,输入如下命令:

$ gitview -c /home/rootlocal/demo.txt      #使用gitview指令观看指定文件内容

命令:indent

Linux indent命令用于调整C原始代码文件的格式。

indent可辨识C的原始代码文件,并加以格式化,以方便程序设计师阅读。

语法格式

indent [参数][源文件] 或 indent [参数][源文件][-o 目标文件]

参数说明

  • -bad或--blank-lines-after-declarations  在声明区段或加上空白行。

  • -bap或--blank-lines-after-procedures  在程序或加上空白行。

  • -bbb或--blank-lines-after-block-comments  在注释区段后加上空白行。

  • -bc或--blank-lines-after-commas  在声明区段中,若出现逗号即换行。

  • -bl或--braces-after-if-line  if(或是else,for等等)与后面执行区段的"{"不同行,且"}"自成一行。

  • -bli<缩排格数>或--brace-indent<缩排格数>  设置{ }缩排的格数。

  • -br或--braces-on-if-line  if(或是else,for等等)与后面执行跛段的"{"不同行,且"}"自成一行。

  • -bs或--blank-before-sizeof  在sizeof之后空一格。

  • -c<栏数>或--comment-indentation<栏数>  将注释置于程序码右侧指定的栏位。

  • -cd<栏数>或--declaration-comment-column<栏数>  将注释置于声明右侧指定的栏位。

  • -cdb或--comment-delimiters-on-blank-lines  注释符号自成一行。

  • -ce或--cuddle-else  将else置于"}"(if执行区段的结尾)之后。

  • -ci<缩排格数>或--continuation-indentation<缩排格数>  叙述过长而换行时,指定换行后缩排的格数。

  • -cli<缩排格数>或--case-indentation-<缩排格数>  使用case时,switch缩排的格数。

  • -cp<栏数>或-else-endif-column<栏数>  将注释置于else与elseif叙述右侧定的栏位。

  • -cs或--space-after-cast  在cast之后空一格。

  • -d<缩排格数>或-line-comments-indentation<缩排格数>  针对不是放在程序码右侧的注释,设置其缩排格数。

  • -di<栏数>或--declaration-indentation<栏数>  将声明区段的变量置于指定的栏位。

  • -fc1或--format-first-column-comments  针对放在每行最前端的注释,设置其格式。

  • -fca或--format-all-comments  设置所有注释的格式。

  • -gnu或--gnu-style  指定使用GNU的格式,此为预设值。

  • -i<格数>或--indent-level<格数>  设置缩排的格数。

  • -ip<格数>或--parameter-indentation<格数>  设置参数的缩排格数。

  • -kr或--k-and-r-style  指定使用Kernighan&Ritchie的格式。

  • -lp或--continue-at-parentheses  叙述过长而换行,且叙述中包含了括弧时,将括弧中的每行起始栏位内容垂直对其排列。

  • -nbad或--no-blank-lines-after-declarations  在声明区段后不要加上空白行。

  • -nbap或--no-blank-lines-after-procedures  在程序后不要加上空白行。

  • -nbbb或--no-blank-lines-after-block-comments  在注释区段后不要加上空白行。

  • -nbc或--no-blank-lines-after-commas  在声明区段中,即使出现逗号,仍旧不要换行。

  • -ncdb或--no-comment-delimiters-on-blank-lines  注释符号不要自成一行。

  • -nce或--dont-cuddle-else  不要将else置于"}"之后。

  • -ncs或--no-space-after-casts  不要在cast之后空一格。

  • -nfc1或--dont-format-first-column-comments  不要格式化放在每行最前端的注释。

  • -nfca或--dont-format-comments  不要格式化任何的注释。

  • -nip或--no-parameter-indentation  参数不要缩排。

  • -nlp或--dont-line-up-parentheses  叙述过长而换行,且叙述中包含了括弧时,不用将括弧中的每行起始栏位垂直对其排列。

  • -npcs或--no-space-after-function-call-names  在调用的函数名称之后,不要加上空格。

  • -npro或--ignore-profile  不要读取indent的配置文件.indent.pro。

  • -npsl或--dont-break-procedure-type  程序类型与程序名称放在同一行。

  • -nsc或--dont-star-comments  注解左侧不要加上星号(*)。

  • -nsob或--leave-optional-semicolon  不用处理多余的空白行。

  • -nss或--dont-space-special-semicolon  若for或while区段仅有一行时,在分号前不加上空格。

  • -nv或--no-verbosity  不显示详细的信息。

  • -orig或--original  使用Berkeley的格式。

  • -pcs或--space-after-procedure-calls  在调用的函数名称与"{"之间加上空格。

  • -psl或--procnames-start-lines  程序类型置于程序名称的前一行。

  • -sc或--start-left-side-of-comments  在每行注释左侧加上星号(*)。

  • -sob或--swallow-optional-blank-lines  删除多余的空白行。

  • -ss或--space-special-semicolon  若for或swile区段今有一行时,在分号前加上空格。

  • -st或--standard-output  将结果显示在标准输出设备。

  • -T  数据类型名称缩排。

  • -ts<格数>或--tab-size<格数>  设置tab的长度。

  • -v或--verbose  执行时显示详细的信息。

  • -version  显示版本信息。

Indent代码格式化说明

使用的indent参数

含义

--blank-lines-after-declarations

bad

变量声明后加空行

--blank-lines-after-procedures

bap

函数结束后加空行

--blank-lines-before-block-comments

bbb

块注释前加空行

--break-before-boolean-operator

bbo

较长的行,在逻辑运算符前分行

--blank-lines-after-commas

nbc

变量声明中,逗号分隔的变量不分行

--braces-after-if-line

bl

"if"和"{"分做两行

--brace-indent 0

bli0

"{"不继续缩进

--braces-after-struct-decl-line

bls

定义结构,"struct"和"{"分行

--comment-indentationn

c33

语句后注释开始于行33

--declaration-comment-columnn

cd33

变量声明后注释开始于行33

--comment-delimiters-on-blank-lines

ncdb

不将单行注释变为块注释

--cuddle-do-while

ncdw

"do --- while"的"while"和其前面的"}"另起一行

--cuddle-else

nce

"else"和其前面的"}"另起一行

--case-indentation 0

cli0

switch中的case语句所进0个空格

--else-endif-columnn

cp33

#else, #endif后面的注释开始于行33

--space-after-cast

cs

在类型转换后面加空格

--line-comments-indentation n

d0

单行注释(不从1列开始的),不向左缩进

--break-function-decl-args

nbfda

关闭:函数的参数一个一行

--declaration-indentationn

di2

变量声明,变量开始于2行,即不必对齐

--format-first-column-comments

nfc1

不格式化起于第一行的注释

--format-all-comments

nfca

不开启全部格式化注释的开关

--honour-newlines

hnl

Prefer to break long lines at the position of newlines in the input.

--indent-leveln

i4

设置缩进多少字符,如果为tab的整数倍,用tab来缩进,否则用空格填充。

--parameter-indentationn

ip5

旧风格的函数定义中参数说明缩进5个空格

--line-length 75

l75

非注释行最长75

--continue-at-parentheses

lp

续行从上一行出现的括号开始

--space-after-procedure-calls

pcs

函数和"("之间插入一个空格

--space-after-parentheses

nprs

在"("后")"前不插入空格

--procnames-start-lines

psl

将函数名和返回类型放在两行定义

--space-after-for

saf

for后面有空格

--space-after-if

sai

if后面有空格

--space-after-while

saw

while后面有空格

--start-left-side-of-comments

nsc

不在生成的块注释中加*

--swallow-optional-blank-lines

nsob

不去掉可添加的空行

--space-special-semicolon

nss

一行的for或while语句,在";"前不加空。

--tab-size

ts4

一个tab为4个空格(要能整除"-in")

--use-tabs

ut

使用tab来缩进

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这