歡迎光臨
每天分享高質量文章

Linux 檔案管理命令語法、引數、實體全彙總(一)


命令: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行內容


命令: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來縮排

《Linux雲端計算及運維架構師高薪實戰班》2018年03月26日即將開課中,120天衝擊Linux運維年薪30萬,改變速約~~~~

    *宣告:推送內容及圖片來源於網路,部分內容會有所改動,版權歸原作者所有,如來源資訊有誤或侵犯權益,請聯絡我們刪除或授權事宜。

    – END –


    更多Linux好文請點選【閱讀原文】

    ↓↓↓

    贊(0)

    分享創造快樂