<i id='p978i'></i>
  • <tr id='p978i'><strong id='p978i'></strong><small id='p978i'></small><button id='p978i'></button><li id='p978i'><noscript id='p978i'><big id='p978i'></big><dt id='p978i'></dt></noscript></li></tr><ol id='p978i'><table id='p978i'><blockquote id='p978i'><tbody id='p978i'></tbody></blockquote></table></ol><u id='p978i'></u><kbd id='p978i'><kbd id='p978i'></kbd></kbd>
  • <acronym id='p978i'><em id='p978i'></em><td id='p978i'><div id='p978i'></div></td></acronym><address id='p978i'><big id='p978i'><big id='p978i'></big><legend id='p978i'></legend></big></address>
    <ins id='p978i'></ins>
  • <i id='p978i'><div id='p978i'><ins id='p978i'></ins></div></i>

    <code id='p978i'><strong id='p978i'></strong></code>

        1. <dl id='p978i'></dl>

          1. <span id='p978i'></span>

            <fieldset id='p978i'></fieldset>

            Linux系统中清理文件和清理环境变量的方法

            • 时间:
            • 浏览:11
            • 来源:124软件资讯网

                使用 Find 下令来帮你找到那些需要清算的文件

                一个问题险些困扰着所有的文件系统 -- 包罗 Unix 和其他的 -- 那就是文件的不停积累  。险些没有人愿意花时间清算掉他们不再使用的文件和整理文件系统  ,效果  ,文件变得很杂乱  ,很难找到有用的工具  ,要使它们运行优秀、维护备份、易于治理  ,这将是一种持久的挑战 。

                我见过的一种解决问题的要领是建议使用者将所有的数据碎屑建立一个文件荟萃的总结陈诉或"概况"  ,来陈诉诸如所有的文件数目;最老的  ,最新的  ,最大的文件;并统计谁拥有这些文件等数据  。若是有人看到五年前的一个包罗五十万个文件的文件夹  ,他们可能会去删除哪些文件 -- 或者 ,至少会归档和压缩  。主要问题是太大的文件夹会使人担忧误删一些主要的工具  。若是有一个形貌文件夹的要领能资助显示文件的性子 ,那么你就可以去清算它了 。

                当我准备做 Unix 文件系统的总结陈诉时 ,几个有用的 Unix 下令能提供一些很是有用的统计信息 。要盘算目录中的文件数 ,你可以使用这样一个 find 下令  。

                代码如下:

                $ find . -type f | wc -l

                187534

                虽然查找最老的和最新的文件是比力庞大 ,但照旧相当利便的  。在下面的下令 ,我们使用 find 下令再次查找文件  ,以文件时间排序并按年-月-日的花样显示  ,在列表顶部的显然是最老的  。

                在第二个下令  ,我们做同样的  ,但打印的是最后一行  ,这是最新的  。

                代码如下:

                $ 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(带路径的文件名)参数  。

                若是我们在查找家目录时 ,无疑会发现  ,history 文件(如 .bash_history)是最新的  ,这并没有什么用  。你可以通过 "un-grepping" 来忽略这些文件 ,也可以忽略以.开头的文件 ,如下图所示的  。

                代码如下:

                $ find -type f -printf '%T+ %p\n' | grep -v "\./\." | sort | tail -n 1

                2015-07-19+13:02:12 ./isPrime

                寻找最大的文件使用 %s(巨细)参数  ,包罗文件名(%f)  ,由于这就是我们想要在陈诉中显示的  。

                代码如下:

                $ find -type f -printf '%s %f \n' | sort -n | uniq | tail -1

                20183040 project.org.tar

                统计文件的所有者  ,使用%u(所有者)

                代码如下:

                $ find -type f -printf '%u \n' | grep -v "\./\." | sort | uniq -c

                180034 shs

                7500 jdoe

                若是文件系统能记载上次的会见日期  ,也将是很是有用的 ,可以用来看该文件有没有被会见过  ,例如说 ,两年之内没会见过  。这将使你能明确分辨这些文件的价值  。这个最后会见(%a)参数这样使用:

                代码如下:

                $ find -type f -printf '%a+ %p\n' | sort | head -n 1

                Fri Dec 15 03:00:30 2006+ ./statreport

                固然  ,若是大多数最近​​会见的文件也是在良久之前的 ,这看起来你需要处置惩罚更多文件了 。

                代码如下:

                $ find -type f -printf '%a+ %p\n' | sort | tail -n 1

                Wed Nov 26 03:00:27 2007+ ./my-notes

                要想条理明白 ,可以为一个文件系统或大目录建立一个总结陈诉  ,显示这些文件的日期规模、最大的文件、文件所有者们、最老的文件和最新会见时间  ,可以资助文件拥有者判断当前有哪些文件夹是主要的哪些该清算了  。

                怎样在 Linux 上运行下令前暂时清空 Bash 情况变量

                怎样显示当前情况?

                打开终端应用法式并输入下面的其中一个下令:

                代码如下:

                printenv

                或

                代码如下:

                env

                输出样例:

                统计情况变量数目

                输入下面的下令:

                代码如下:

                env | wc -l

                printenv | wc -l # 或者

                输出样例:

                代码如下:

                20

                在洁净的 bash/ksh/zsh 情况中运行法式

                语法如下所示:

                代码如下:

                env -i your-program-name-here arg1 arg2 ...

                例如 ,要在不使用 http_proxy 和/或任何其它情况变量的情形下运行 wget 法式  。暂时扫除所有 bash/ksh/zsh 情况变量并运行 wget 法式:

                代码如下:

                env -i /usr/local/bin/wget www.cyberciti.biz

                env -i wget www.cyberciti.biz # 或者

                这当你想忽视任何已经设置的情况变量来运行下令时很是有用 。我天天都市多次使用这个下令  ,以便忽视 http_proxy 和其它我设置的情况变量 。

                例子:使用 http_proxy

                复制代码

                代码如下:

                $ 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

                代码如下:

                $ 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 选项使 env 下令完全忽视它继续的情况  。可是 ,它并不会阻止你的下令(例如 wget 或 curl)设置新的变量 。同时  ,也要注重运行 bash/ksh shell 的副作用:

                代码如下:

                env -i env | wc -l ## 空的 ##

                # 现在运行 bash ##

                env -i bash

                ## bash 设置了新的情况变量 ##

                env | wc -l

                例子:设置一个情况变量

                语法如下:

                代码如下:

                env var=value /path/to/command arg1 arg2 ...

                ## 或 ##

                var=value /path/to/command arg1 arg2 ...

                例如设置http_proxy:

                代码如下:

                env http_proxy="http://USER:PASSWORD@server1.cyberciti.biz:3128/" /usr/local/bin/wget www.cyberciti.biz