一個比較經典的問題:
成都創新互聯堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網站建設、網站制作、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的濟陽網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
如果線上機器的磁盤占用率超級高,怎么辦?
這時候優先想到的肯定是,定位到占用磁盤空間最大的那些文件,然后把可以刪的給刪掉。
那么,問題來了,如何定位到占用磁盤空間最大的文件?
一個辦法是執行如下命令:
里面涉及三個指令:du、sort、more
既然用到了,就順便多了解一下這三個指令的用法,算是做下個人筆記。
首先是du
作用:用來查看文件所占用的磁盤情況。
格式:du [選項] [文件]
可用選項(如下為du --help展示的內容):
操作示例:
對幾個比較常用的選項單獨拿出來,在機器上實際操作,效果如下:
首先,當前目錄如下:
du:
其實吧,從圖里面可以看到,使用“du”的時候,最后一行就當前目錄的磁盤使用總量,所以,感覺一般情況下-c這個選項并沒有什么用。
du -s:只計算總量
不過,注意:-s與-a不能同時存在,會報錯的。
sort
作用:對輸出的結果進行排序
可用選項:
-r:代表逆序排序
-n:按照字符串數值排序
-g:按照常規數值排序
-f:忽略字母大小寫
實測效果:
首先是測試文件的原始狀態:
測試一:sort
可以發現:
空行排在了第一位;
不管數字有多大,字符串都會排在數字的后面;
數字之間排序的時候,優先考慮首位數字(感覺是把數字也當成了一個字符串進行排序);
more
作用:用于一頁一頁地展示文件內容。
幾個常用操作:
空格:翻到下一頁
b:翻到上一頁
/:啟動字符串搜索(類似于vim)
此外:
more +n XXX:從XXX文件的第n行開始展示
more -n XXX:展示XXX文件,并且將n行視為一頁,也就是按空格時,只會顯示后續的N行
cat
作用:一次性的展示所有文件內容
cat有兩個比較有用的選項:
-n:輸出所有行號
-b:只對非空行輸出行號
此外,
cat支持同時輸出多個文件的內容:cat XXX YYYY ZZZZ
并且,cat可以與more結合使用:cat XXX | more 或者 cat XXX YYYY ZZZZ | more 或者 cat -n XXX | more
less:
作用:對文件或者輸出內容進行分頁展示,并且less可以用于打開多個文件
常用操作:
j:向上滾動一行
k:向下滾動一行(類似于vim)
g:跳到第一行
G:跳到最后一行
b:向上翻一頁
空格:翻頁
n%:跳轉到整個文件的n%處
:e :在使用less打開多個文件時,使用“:e”選擇跳轉到其他文件去
/:進行字符串搜索
v:啟動編輯
常用選項:
-N:在每一行前面都顯示行號
-m:顯示讀取文件的百分比
-M:顯示讀取文件的百分比、行號和總行數
注意:
其他兩個比較簡單的指令:
head:顯示一個文件的前N行
用法:head -n 行數 文件名
tail:顯示一個文件的最后N行
用法:tail -n 行數 文件名
不過,使用tai的時候,因為-f選項可以自動顯示新增加的內容,所以經常會使用如下方式:
tail -f 文件名
樓上的 f1.c清空的原理講的正確 但是
$ cat f1.c f1.c
會造成死循環 ,瞬間會造成巨大的文件 , 不要誤導人了 呵呵
lz 要想明白這個 一定要了解的到底是干什么的
對于你的命令 cat f1.c f1.c 表示
cat 命令以 f1.c 文件作為 stdin,同時以 f1.c 文件作為 stdout
一般的 ,linux中的文件都有一個標記叫做EOF ,End of File ,此標記表示為文本結束符 ,這樣一來 f1.c的文件尾部就是EOF , 執行最后一步的重定向時 就將EOF重定向到了 f1.c ,這樣 直接將一個EOF重定向到文件的時候表示將文件清空
其實你的命令等效于
$ cat EOF f1.c
EOF
對于stdin來講 它是忠實的呈現來源的各個字節的
這個例子沒什么實用價值 也就是讓人了解 的功能以及特點, 邏輯上來講 從一個文件讀入在重新輸出到文件本身有什么意思呢.
cat 命令用于連接文件并打印到標準輸出設備上。cat是concatenate的簡寫,類似于dos下面的type命令,使用權限為所有使用者。
cat file1 file2的意思是把 file1 的文檔內容輸入file2 這個文檔里。
擴展資料:
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。
-A, --show-all:等價于 -vET。
-e:等價于"-vE"選項;
-t:等價于"-vT"選項;
比如:
把 textfile1 的文檔內容加上行號后輸入 textfile2 這個文檔里:
cat -n textfile1 textfile2
參考資料:cat(linux命令)-百度百科
cat 1.txt /dev/null cat 1.txt 2.txt || echo "$(date +%F\ %T) $(cat 1.txt 21)" err.txt
上面的意思是首先cat 1.txt,丟棄標準輸出和錯誤輸出;如果這個命令正確(即讀取到了1.txt的內容),那么執行cat 1.txt 2.txt,即把1.txt的內容追加寫到2.txt中;如果這個文件不正確(即“沒有這個文件或目錄”),那么執行echo "$(date +%F\ %T) $(cat 1.txt 21)" err.txt,即把時間和錯誤信息放在一行,寫入err.txt中。
當前標題:linux命令cat問題的簡單介紹
標題鏈接:http://m.kartarina.com/article0/hjgsoo.html
成都網站建設公司_創新互聯,為您提供營銷型網站建設、外貿網站建設、建站公司、品牌網站建設、全網營銷推廣、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯