主頁 > 知識庫 > Linux系統(tǒng)中清理文件和清理環(huán)境變量的方法

Linux系統(tǒng)中清理文件和清理環(huán)境變量的方法

熱門標(biāo)簽:服務(wù)器配置 百度競價點(diǎn)擊價格的計(jì)算公式 美團(tuán) 解決方案 外呼系統(tǒng) 硅谷的囚徒呼叫中心 電話機(jī)器人搭建 家政服務(wù)網(wǎng)絡(luò)

使用 Find 命令來幫你找到那些需要清理的文件
一個問題幾乎困擾著所有的文件系統(tǒng) -- 包括 Unix 和其他的 -- 那就是文件的不斷積累。幾乎沒有人愿意花時間清理掉他們不再使用的文件和整理文件系統(tǒng),結(jié)果,文件變得很混亂,很難找到有用的東西,要使它們運(yùn)行良好、維護(hù)備份、易于管理,這將是一種持久的挑戰(zhàn)。

我見過的一種解決問題的方法是建議使用者將所有的數(shù)據(jù)碎屑創(chuàng)建一個文件集合的總結(jié)報(bào)告或"概況",來報(bào)告諸如所有的文件數(shù)量;最老的,最新的,最大的文件;并統(tǒng)計(jì)誰擁有這些文件等數(shù)據(jù)。如果有人看到五年前的一個包含五十萬個文件的文件夾,他們可能會去刪除哪些文件 -- 或者,至少會歸檔和壓縮。主要問題是太大的文件夾會使人擔(dān)心誤刪一些重要的東西。如果有一個描述文件夾的方法能幫助顯示文件的性質(zhì),那么你就可以去清理它了。

當(dāng)我準(zhǔn)備做 Unix 文件系統(tǒng)的總結(jié)報(bào)告時,幾個有用的 Unix 命令能提供一些非常有用的統(tǒng)計(jì)信息。要計(jì)算目錄中的文件數(shù),你可以使用這樣一個 find 命令。


復(fù)制代碼
代碼如下:
$ find . -type f | wc -l
187534

雖然查找最老的和最新的文件是比較復(fù)雜,但還是相當(dāng)方便的。在下面的命令,我們使用 find 命令再次查找文件,以文件時間排序并按年-月-日的格式顯示,在列表頂部的顯然是最老的。

在第二個命令,我們做同樣的,但打印的是最后一行,這是最新的。


復(fù)制代碼
代碼如下:
$ find -type f -printf '%T+ %p\n' | sort | head -n 1
2006-02-03+02:40:33 ./skel/.xemacs/init.el
$ find -type f -printf '%T+ %p\n' | sort | tail -n 1
2015-07-19+14:20:16 ./.bash_history

printf 命令輸出 %T(文件日期和時間)和 %P(帶路徑的文件名)參數(shù)。

如果我們在查找家目錄時,無疑會發(fā)現(xiàn),history 文件(如 .bash_history)是最新的,這并沒有什么用。你可以通過 "un-grepping" 來忽略這些文件,也可以忽略以.開頭的文件,如下圖所示的。


復(fù)制代碼
代碼如下:
$ find -type f -printf '%T+ %p\n' | grep -v "\./\." | sort | tail -n 1
2015-07-19+13:02:12 ./isPrime

尋找最大的文件使用 %s(大小)參數(shù),包括文件名(%f),因?yàn)檫@就是我們想要在報(bào)告中顯示的。


復(fù)制代碼
代碼如下:
$ find -type f -printf '%s %f \n' | sort -n | uniq | tail -1
20183040 project.org.tar

統(tǒng)計(jì)文件的所有者,使用%u(所有者)


復(fù)制代碼
代碼如下:
$ find -type f -printf '%u \n' | grep -v "\./\." | sort | uniq -c
180034 shs
7500 jdoe

如果文件系統(tǒng)能記錄上次的訪問日期,也將是非常有用的,可以用來看該文件有沒有被訪問過,比方說,兩年之內(nèi)沒訪問過。這將使你能明確分辨這些文件的價值。這個最后訪問(%a)參數(shù)這樣使用:


復(fù)制代碼
代碼如下:
$ find -type f -printf '%a+ %p\n' | sort | head -n 1
Fri Dec 15 03:00:30 2006+ ./statreport

當(dāng)然,如果大多數(shù)最近​​訪問的文件也是在很久之前的,這看起來你需要處理更多文件了。


復(fù)制代碼
代碼如下:
$ find -type f -printf '%a+ %p\n' | sort | tail -n 1
Wed Nov 26 03:00:27 2007+ ./my-notes

要想層次分明,可以為一個文件系統(tǒng)或大目錄創(chuàng)建一個總結(jié)報(bào)告,顯示這些文件的日期范圍、最大的文件、文件所有者們、最老的文件和最新訪問時間,可以幫助文件擁有者判斷當(dāng)前有哪些文件夾是重要的哪些該清理了。


如何在 Linux 上運(yùn)行命令前臨時清空 Bash 環(huán)境變量
如何顯示當(dāng)前環(huán)境?
打開終端應(yīng)用程序并輸入下面的其中一個命令:


復(fù)制代碼
代碼如下:
printenv


復(fù)制代碼
代碼如下:
env

輸出樣例:

統(tǒng)計(jì)環(huán)境變量數(shù)目
輸入下面的命令:


復(fù)制代碼
代碼如下:
env | wc -l
printenv | wc -l # 或者

輸出樣例:


復(fù)制代碼
代碼如下:
20

在干凈的 bash/ksh/zsh 環(huán)境中運(yùn)行程序
語法如下所示:


復(fù)制代碼
代碼如下:
env -i your-program-name-here arg1 arg2 ...

例如,要在不使用 http_proxy 和/或任何其它環(huán)境變量的情況下運(yùn)行 wget 程序。臨時清除所有 bash/ksh/zsh 環(huán)境變量并運(yùn)行 wget 程序:


復(fù)制代碼
代碼如下:
env -i /usr/local/bin/wget www.cyberciti.biz
env -i wget www.cyberciti.biz # 或者

這當(dāng)你想忽視任何已經(jīng)設(shè)置的環(huán)境變量來運(yùn)行命令時非常有用。我每天都會多次使用這個命令,以便忽視 http_proxy 和其它我設(shè)置的環(huán)境變量。

例子:使用 http_proxy

復(fù)制代碼
代碼如下:
$ wget www.cyberciti.biz
--2015-08-03 23:20:23-- http://www.cyberciti.biz/
Connecting to 10.12.249.194:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'index.html'
index.html [ => ] 36.17K 87.0KB/s in 0.4s
2015-08-03 23:20:24 (87.0 KB/s) - 'index.html' saved [37041]

例子:忽視 http_proxy

復(fù)制代碼
代碼如下:
$ env -i /usr/local/bin/wget www.cyberciti.biz
--2015-08-03 23:25:17-- http://www.cyberciti.biz/
Resolving www.cyberciti.biz... 74.86.144.194
Connecting to www.cyberciti.biz|74.86.144.194|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'index.html.1'
index.html.1 [ => ] 36.17K 115KB/s in 0.3s
2015-08-03 23:25:18 (115 KB/s) - 'index.html.1' saved [37041]

-i 選項(xiàng)使 env 命令完全忽視它繼承的環(huán)境。但是,它并不會阻止你的命令(例如 wget 或 curl)設(shè)置新的變量。同時,也要注意運(yùn)行 bash/ksh shell 的副作用:


復(fù)制代碼
代碼如下:
env -i env | wc -l ## 空的 ##
# 現(xiàn)在運(yùn)行 bash ##
env -i bash
## bash 設(shè)置了新的環(huán)境變量 ##
env | wc -l

例子:設(shè)置一個環(huán)境變量
語法如下:


復(fù)制代碼
代碼如下:
env var=value /path/to/command arg1 arg2 ...
## 或 ##
var=value /path/to/command arg1 arg2 ...

例如設(shè)置http_proxy:


復(fù)制代碼
代碼如下:
env http_proxy="http://USER:PASSWORD@server1.cyberciti.biz:3128/" /usr/local/bin/wget www.cyberciti.biz

標(biāo)簽:南昌 邢臺 韶關(guān) 防城港 臨沂 烏蘭察布 北海 撫州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux系統(tǒng)中清理文件和清理環(huán)境變量的方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266