精华内容
下载资源
问答
  • linux删除命令

    2021-05-11 00:05:11
    linux查找超过一定时间的文件,并批量删除1、find . -maxdepth 4 -name "*-*" -mtime 3-maxdepth的值决定是否对下面的子目录进行递归查找-mtime 3表示查找3天内的,-mtime +3表示查找超过3天的,也就是查找3天前的...

    linux查找超过一定时间的文件,并批量删除

    1、find . -maxdepth 4 -name "*-*" -mtime 3

    -maxdepth的值决定是否对下面的子目录进行递归查找

    -mtime 3表示查找3天内的,-mtime +3表示查找超过3天的,也就是查找3天前的文件

    2、find . -maxdepth 4 -name "*-*" -mtime 3 | sudo xargs rm -rf

    -----------------------------------------------------------------------------------------------------------------------------

    find ./ -maxdepth 4 -mtime +3 -a -mtime -20 -type f

    -- 如果将xmaxdepth放置于-mtime之后,将会抛出这个错误

    find: warning: you have specified the -maxdepth option after a non-option argument -mtime, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.

    -----------------------------------------------------------------------------------------------------------------------------

    -mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件。

    -mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件。

    -mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件

    -mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件

    -----------------------------------------------------------------------------------------------------------------------------

    -maxdepth 参数详解

    -maxdepth选项的作用就是限制find命令在目录中按照递减方式查找文件的时候搜索文件超过某个级别或者搜索过多的目录,这样导致查找速度变慢,查找花费的时间过多。例如,我们要在当前(.)目录技巧子目录中查找一个名叫fred的文件,我们可以使用如下命令

    find . -maxdepth 2 -name fred

    假如这个fred文件在./sub1/fred目录中,那么这个命令就会直接定位这个文件,查找很容易成功。假如,这个文件在./sub1/sub2/fred目录中,那么这个命令就无法查找到。因为前面已经给find命令在目录中最大的查询目录级别为2,只能查找2层目录下的文件。这样做的目的就是为了让find命令更加>

    精确的定位文件,如果你已经知道了某个文件大概所在的文件目录级数,那么加入-maxdepth n 就很快的能在指定目录中查找成功。

    也即是-maxdepth 参数指定递归查找级别,如果-maxdepth 2 则查找当前目录递归查找2层,-maxdepth 4 则查找当前目录递归查找4层。

    展开全文
  • fdupes:Linux中查找并删除重复文件的命令行工具fdupes是Linux下的一个工具,它由AdrianLopez用C编程语言编写并基于MIT许可证发行,该应用程序可以在指定的目录及子目录中查找重复的文件。如果你的机器上跑着GNU/...

    fdupes:Linux中查找并删除重复文件的命令行工具fdupes是Linux下的一个工具,它由Adrian

    Lopez用C编程语言编写并基于MIT许可证发行,该应用程序可以在指定的目录及子目录中查找重复的文件。

    如果你的机器上跑着GNU/Linux,那么查找重复文件会变得十分简单,这多亏了fdupes工具。对于大多数计算机用户而言,查找并替换重复的文件是一个常见的需求。查找并移除重复文件真是一项令人不胜其烦的工作,它耗时又耗力。但如果你的机器上跑着GNU/Linux,那么查找重复文件会变得十分简单,这多亏了fdupes工具。

    fdupes——在Linux中查找并删除重复文件

    fdupes是啥东东?

    fdupes是Linux下的一个工具,它由Adrian

    Lopez用C编程语言编写并基于MIT许可证发行,该应用程序可以在指定的目录及子目录中查找重复的文件。fdupes通过对比文件的MD5签名,以及逐字节比较文件来识别重复内容,fdupes有各种选项,可以实现对文件的列出、删除、替换为文件副本的硬链接等操作。

    文件对比以下列顺序开始:

    大小对比>部分MD5签名对比>完整MD5签名对比>逐字节对比

    安装fdupes到Linux

    在基于Debian的系统上,如Ubuntu和Linux

    Mint,安装最新版fdupes,用下面的命令手到擒来。

    $ sudo apt-get install fdupes

    在基于CentOS/RHEL和Fedora的系统上,你需要开启epel仓库来安装fdupes包。# yum install fdupes# dnf install fdupes[在Fedora 22及其以后]注意:自Fedora

    22之后,默认的包管理器yum被dnf取代了。

    fdupes命令如何使用

    1、作为演示的目的,让我们来在某个目录(比如tecmint)下创建一些重复文件,命令如下:

    $ mkdir

    /home/"$USER"/Desktop/tecmint && cd

    /home/"$USER"/Desktop/tecmint && for i in {1..15}; do echo

    "I Love Tecmint. Tecmint is a very nice community of Linux Users."

    > tecmint${i}.txt ; done

    在执行以上命令后,让我们使用ls命令验证重复文件是否创建。

    $ ls -l

    total 60-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint10.txt-rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint11.txt-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint12.txt-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint13.txt-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint14.txt-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint15.txt-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint1.txt-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint2.txt-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint3.txt-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint4.txt-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint5.txt-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint6.txt-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint7.txt-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint8.txt-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint9.txt

    上面的脚本创建了15个文件,名称分别为tecmint1.txt,tecmint2.txt……tecmint15.txt,并且每个文件的数据相同,如:"I Love Tecmint. Tecmint is a very nice community of Linux

    Users."

    2、现在在tecmint文件夹内搜索重复的文件。

    $ fdupes

    /home/$USER/Desktop/tecmint

    /home/tecmint/Desktop/tecmint/tecmint13.txt/home/tecmint/Desktop/tecmint/tecmint8.txt/home/tecmint/Desktop/tecmint/tecmint11.txt/home/tecmint/Desktop/tecmint/tecmint3.txt/home/tecmint/Desktop/tecmint/tecmint4.txt/home/tecmint/Desktop/tecmint/tecmint6.txt/home/tecmint/Desktop/tecmint/tecmint7.txt/home/tecmint/Desktop/tecmint/tecmint9.txt/home/tecmint/Desktop/tecmint/tecmint10.txt/home/tecmint/Desktop/tecmint/tecmint2.txt/home/tecmint/Desktop/tecmint/tecmint5.txt/home/tecmint/Desktop/tecmint/tecmint14.txt/home/tecmint/Desktop/tecmint/tecmint1.txt/home/tecmint/Desktop/tecmint/tecmint15.txt/home/tecmint/Desktop/tecmint/tecmint12.txt

    3、使用-r选项在每个目录包括其子目录中递归搜索重复文件。

    它会递归搜索所有文件和文件夹,花一点时间来扫描重复文件,时间的长短取决于文件和文件夹的数量。在此其间,终端中会显示全部过程,像下面这样。

    $ fdupes -r /home

    Progress [37780/54747] 69%

    4、使用-S选项来查看某个文件夹内找到的重复文件的大小。

    $ fdupes -S

    /home/$USER/Desktop/tecmint

    65 bytes each:

    /home/tecmint/Desktop/tecmint/tecmint13.txt/home/tecmint/Desktop/tecmint/tecmint8.txt/home/tecmint/Desktop/tecmint/tecmint11.txt/home/tecmint/Desktop/tecmint/tecmint3.txt/home/tecmint/Desktop/tecmint/tecmint4.txt/home/tecmint/Desktop/tecmint/tecmint6.txt/home/tecmint/Desktop/tecmint/tecmint7.txt/home/tecmint/Desktop/tecmint/tecmint9.txt/home/tecmint/Desktop/tecmint/tecmint10.txt/home/tecmint/Desktop/tecmint/tecmint2.txt/home/tecmint/Desktop/tecmint/tecmint5.txt/home/tecmint/Desktop/tecmint/tecmint14.txt/home/tecmint/Desktop/tecmint/tecmint1.txt/home/tecmint/Desktop/tecmint/tecmint15.txt/home/tecmint/Desktop/tecmint/tecmint12.txt

    5、你可以同时使用-S和-r选项来查看所有涉及到的目录和子目录中的重复文件的大小,如下:

    $ fdupes -Sr /home/avi/Desktop/

    65 bytes each:

    /home/tecmint/Desktop/tecmint/tecmint13.txt/home/tecmint/Desktop/tecmint/tecmint8.txt/home/tecmint/Desktop/tecmint/tecmint11.txt/home/tecmint/Desktop/tecmint/tecmint3.txt/home/tecmint/Desktop/tecmint/tecmint4.txt/home/tecmint/Desktop/tecmint/tecmint6.txt/home/tecmint/Desktop/tecmint/tecmint7.txt/home/tecmint/Desktop/tecmint/tecmint9.txt/home/tecmint/Desktop/tecmint/tecmint10.txt/home/tecmint/Desktop/tecmint/tecmint2.txt/home/tecmint/Desktop/tecmint/tecmint5.txt/home/tecmint/Desktop/tecmint/tecmint14.txt/home/tecmint/Desktop/tecmint/tecmint1.txt/home/tecmint/Desktop/tecmint/tecmint15.txt/home/tecmint/Desktop/tecmint/tecmint12.txt

    107 bytes each:

    /home/tecmint/Desktop/resume_files/r-csc.html/home/tecmint/Desktop/resume_files/fc.html

    6、不同于在一个或所有文件夹内递归搜索,你可以选择按要求有选择性地在两个或三个文件夹内进行搜索。不必再提醒你了吧,如有需要,你可以使用-S和/或-r选项。

    $ fdupes /home/avi/Desktop/

    /home/avi/Templates/

    7、要删除重复文件,同时保留一个副本,你可以使用-d选项。使用该选项,你必须额外小心,否则最终结果可能会是文件/数据的丢失。郑重提醒,此操作不可恢复。

    $ fdupes -d

    /home/$USER/Desktop/tecmint

    [1]

    /home/tecmint/Desktop/tecmint/tecmint13.txt[2] /home/tecmint/Desktop/tecmint/tecmint8.txt[3] /home/tecmint/Desktop/tecmint/tecmint11.txt[4] /home/tecmint/Desktop/tecmint/tecmint3.txt[5] /home/tecmint/Desktop/tecmint/tecmint4.txt[6] /home/tecmint/Desktop/tecmint/tecmint6.txt[7] /home/tecmint/Desktop/tecmint/tecmint7.txt[8] /home/tecmint/Desktop/tecmint/tecmint9.txt[9] /home/tecmint/Desktop/tecmint/tecmint10.txt[10] /home/tecmint/Desktop/tecmint/tecmint2.txt[11] /home/tecmint/Desktop/tecmint/tecmint5.txt[12] /home/tecmint/Desktop/tecmint/tecmint14.txt[13] /home/tecmint/Desktop/tecmint/tecmint1.txt[14] /home/tecmint/Desktop/tecmint/tecmint15.txt[15] /home/tecmint/Desktop/tecmint/tecmint12.txt

    Set 1 of 1, preserve files [1 -

    15, all]:

    你可能注意到了,所有重复的文件被列了出来,并给出删除提示,一个一个来,或者指定范围,或者一次性全部删除。你可以选择一个范围,就像下面这样,来删除指定范围内的文件。

    Set 1 of 1, preserve files [1 -

    15, all]: 2-15

    [-]

    /home/tecmint/Desktop/tecmint/tecmint13.txt[+]

    /home/tecmint/Desktop/tecmint/tecmint8.txt[-]

    /home/tecmint/Desktop/tecmint/tecmint11.txt[-]

    /home/tecmint/Desktop/tecmint/tecmint3.txt[-]

    /home/tecmint/Desktop/tecmint/tecmint4.txt[-]

    /home/tecmint/Desktop/tecmint/tecmint6.txt[-]

    /home/tecmint/Desktop/tecmint/tecmint7.txt[-]

    /home/tecmint/Desktop/tecmint/tecmint9.txt[-]

    /home/tecmint/Desktop/tecmint/tecmint10.txt[-]

    /home/tecmint/Desktop/tecmint/tecmint2.txt[-]

    /home/tecmint/Desktop/tecmint/tecmint5.txt[-]

    /home/tecmint/Desktop/tecmint/tecmint14.txt[-]

    /home/tecmint/Desktop/tecmint/tecmint1.txt[-]

    /home/tecmint/Desktop/tecmint/tecmint15.txt[-]

    /home/tecmint/Desktop/tecmint/tecmint12.txt

    8、从安全角度出发,你可能想要打印fdupes的输出结果到文件中,然后检查文本文件来决定要删除什么文件。这可以降低意外删除文件的风险。你可以这么做:

    $ fdupes -Sr /home >

    /home/fdupes.txt

    注意:你应该替换/home为你想要的文件夹。同时,如果你想要递归搜索并打印大小,可以使用-r和-S选项。

    9、你可以使用-f选项来忽略每个匹配集中的首个文件。

    首先列出该目录中的文件。

    $ ls -l

    /home/$USER/Desktop/tecmint

    total 20-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint9 (3rd copy).txt-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint9 (4th copy).txt-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint9 (another copy).txt-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint9 (copy).txt-rw-r--r-- 1 tecmint tecmint 65 Aug8 11:22 tecmint9.txt

    然后,忽略掉每个匹配集中的首个文件。

    $ fdupes -f

    /home/$USER/Desktop/tecmint

    /home/tecmint/Desktop/tecmint9

    (copy).txt/home/tecmint/Desktop/tecmint9 (3rd copy).txt/home/tecmint/Desktop/tecmint9 (another copy).txt/home/tecmint/Desktop/tecmint9 (4th copy).txt

    10、检查已安装的fdupes版本。

    $ fdupes --version

    fdupes 1.51

    11、如果你需要关于fdupes的帮助,可以使用-h开关。

    $ fdupes -h

    Usage: fdupes [options]

    DIRECTORY...-r --recursefor every directory given follow

    subdirectoriesencountered within-R --recurse:for each directory given after this

    option followsubdirectories encountered within (note the ':' atthe end

    of the option, manpage for more details)-s --symlinksfollow symlinks-H --hardlinksnormally, when two or more files point to

    the samedisk

    area they are treated as non-duplicates; thisoption

    will change this behavior-n --noemptyexclude zero-length files from

    consideration-A --nohiddenexclude hidden files from consideration-f --omitfirstomit the first file in each set of matches-1 --samelinelist each set of matches on a single line-S --sizeshow size of duplicate files-m --summarizesummarize dupe information-q --quiethide progress indicator-d --deleteprompt user for files to preserve and

    delete allothers;

    important: under particular circumstances,data may be lost when using this option

    togetherwith -s

    or --symlinks, or when specifying aparticular directory more than once; refer to thefdupes

    documentation for additional information-N --noprompttogether with --delete, preserve the

    first file ineach set

    of duplicates and delete the rest withoutprompting the user-v --versiondisplay fdupes version-h --helpdisplay this help message

    到此为止了。让我知道你以前怎么在Linux中查找并删除重复文件的吧?同时,也让我知道你关于这个工具的看法。在下面的评论部分中提供你有价值的反馈吧!别忘了为我们点赞并分享,帮助我们扩散哦!

    我正在使用另外一个移除重复文件的工具,它叫fslint。很快就会把使用心得分享给大家哦,你们一定会喜欢看的。

    展开全文
  • 产生碎片整理想法的主要在两类朋友中,一类是受windows思想影响...它是这样产生的,假设一个磁盘的空间有20k,它的基本存储单位簇,设有两个文件,一个7k,一个1k。当簇的大小4k时,磁盘分为了5个簇,两个文件共...

    产生碎片整理想法的主要在两类朋友中,一类是受windows思想影响的朋友,还有一类是对操作系统原理有一定程度了解的朋友。

    我在这里先简单地说明一些问题。

    所有地操作系统都会产生磁盘碎片,这正是某些朋友产生疑虑的原因。这个碎片在上面地官方资料中称为内部碎片。它是这样产生的,假设一个磁盘的空间有

    20k,它的基本存储单位为簇,设有两个文件,一个7k,一个1k。当簇的大小为4k时,磁盘分为了5个簇,两个文件共占用3个簇,即使用了12k,其中

    浪费地空间就是4k,也就是产生了内部碎片4k。因此我们就了解了:内部碎片主要是造成磁盘空间的浪费。请注意:windows的磁盘碎片整理功能所整理

    的碎片不是这个碎片,也无法对这个碎片进行操作,它所对应的碎片概念是外部碎片。

    那么,可以对内部碎片进行优化处理吗?答案是肯定的。以上面的例子来说,如果把每一簇分成2k,那么20k的磁盘就分为了10个簇,7k和1k两个文件共占用了5个簇,10k的空间,浪费的空间,即内部碎片为2k。

    由此可见,簇分的越小,所浪费的空间越少。这也是NTFS比FAT32优秀的一个地方。在Win

    2000的FAT32文件系统的情况下,分区大小在2GB~8GB时簇的大小为4KB;分区大小在8GB~16GB时簇的大小为8KB;分区大小在

    16GB~32GB时,簇的大小则达到了16KB。而Win

    2000的NTFS文件系统,当分区的大小在2GB以下时,簇的大小都比相应的FAT32簇小;当分区的大小在2GB以上时(2GB~2TB),簇的大小

    都为4KB。相比之下,NTFS可以比FAT32更有效地管理磁盘空间,最大限度地避免了磁盘空间的浪费。

    有的朋友会进一步的思考,

    那么为什么文件系统不是把簇分的非常的小呢?这里就引出了另一个问题,文件访问查找的问题。还是以上面的例子说明,当我们要查找使用一个文件时,就需要通

    过页表来进行访问。打个比方,你住的地方就好比是文件所占用的簇,但是要找到你,就得通过你的住址来进行访问,而访问文件则是通过文件分配表。如果住的人

    多,地址也就很多,那么要查到你住的地址所花的时间也就很多。同样的道理,当簇分的越小,记录簇的地址也就越大,查找文件所在的簇所花的时间也就越多。当

    簇为4k时,簇的地址是5个,而簇为2k时,簇的地址是10个。因而簇的大小是在空间和时间上取得平衡的一个结果。

    这里也对另一个问题作一些提示,有些第三方分区软件可以自定义簇的大小,建议采用默认值,否则会在某些情况下产生一些问题。

    有的朋友会进一步提问:那么为什么在普通情况下NTFS分的簇会比FAT32的要小,而访问速度会差不多呢?这又牵涉到文件访问机制等等问题。这里我就

    不再介绍了,其实这个问题我也不能完全说清,有兴趣的朋友可以找一些操作系统方面的资料进行阅读,可以在一定程度上解决这个问题。

    好,下面开始我们的重点:linux不需要碎片整理!

    windows概念下的碎片,在上面linux官方资料中称为外部碎片,它就是影响性能的那个碎片概念。(This is called

    "external fragmentation" or simply "fragmentation" and is a common

    problem with MS-DOS file systems.

    )而linux一般不会产生这种碎片。外部磁盘碎片应该称为文件碎片,是因为文件被分散保存到整个磁盘的不同地方,而不是连续地保存在磁盘连续的簇中形成

    的。

    当应用程序所需的物理内存不足时,一般操作系统会在硬盘中产生临时交换文件,用该文件所占用的硬盘空间虚拟成内存。虚拟内存管理程序会对硬盘频繁读写,产生大量的碎片,这是产生硬盘碎片的主要原因。

    其他如IE浏览器浏览信息时生成的临时文件或临时文件目录的设置也会造成系统中形成大量的碎片。文件碎片一般不会在系统中引起问题,但文件碎片

    过多会使系统在读文件的时候来回寻找,引起系统性能下降,严重的还要缩短硬盘寿命。另外,过多的磁盘碎片还有可能导致存储文件的丢失。

    上面所说的就是windows如何产生外部碎片的,其实这与文件系统所使用的数据结构有关。对于FAT来说,使用的是chain式的结构来记录一个文件

    所使用的簇。这种方式的好处就是有助于文件的动态增长的需要。但是却带了碎片的问题,使得读写文件的时候,磁头频繁移动。对于CD-ROM,由于是

    read-only的,所以不存在数据增长的问题,所以,采用了连续的方法来记录数据,也不会产生碎片,而linux的ext等文件格式与CD-ROM的

    存储有相似之处。

    下面这篇文章通俗易懂地解说了为什么linux不需要碎片整理以及windows为什么需要碎片整理:

    来自http://geekblog.oneandoneis2.org/index.php/2006/08/17/why_doesn_t_linux_need_defragmenting

    请注意,官方资料所说的是linux文件系统在磁盘还有5%空闲空间的情况下是不需要碎片整理的。(Linux native file

    systems do not need defragmentation under normal use and this includes

    any condition with at least 5% of free space on a

    disk.)。而在实际使用中,磁盘在还有8%左右未使用时就会有警告产生,所以碎片整理是不用考虑的。

    而下文中说的是20%。

    有一个关于Linux的问题经常被问及:为什么Linux不需要磁盘碎片整理呢?在这里,我试图就“为什么有的文件系统比另一些文件系统更加需要磁盘碎片整理”给出一个简单的,非技术性的答案。

    我将试图用一个ASCII矩阵来解释所有的原理,而不是用那些枯燥而晦涩的术语来打击大家的积极性。下面就是我将用来解释原理的矩阵:

    a b c d e f g h i j k l m n o p q r s t u v w x y z

    a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    g 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    j 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    k 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    n 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    p 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    r 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    u 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    v 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    以上这个矩阵就可以简单的用来表示一个很小的硬盘,初始状态是空的,全部都被0填充。在矩阵顶部和左侧的a-z都是用来定位每一个数据的。最左上角的那个0就是aa,最右上角的那个0就是za,最左下角的就是az。

    我将以一个大家都非常非常熟悉的文件系统开始,一个经常需要磁盘碎片整理的系统—FAT。其实无论Windows用户还是Linux用户都会用到FAT文件系统。因为USB闪盘一般都使用这个文件系统。FAT是一个非常非常重要的文件系统,虽然它经常需要磁盘碎片整理。

    我现在在磁盘上加入一个文件,于是磁盘看起来会变成这个样子:

    a b c d e f g h i j k l m n o p q r s t u v w x y z

    a T O C h e l l o . t x t a e l e 0 0 0 0 0 0 0 0 0 0

    b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C

    e H e l l o , _ w o r l d 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    (为了看起来更加清楚,g-z的空行被省略了)

    正如你所看到的,前4行是TOC(Table Of

    Contents),即所谓的内容表。TOC会存储磁盘上所有文件的位置。在我上面的例子中,TOC包含了一个名字叫做“hello.txt”的文件,并

    且这个文件的内容是从ae到le的。往下看ae到le之间的内容,我们能看到这个文件的内容是“Hello,_world”

    到目前为止,一切都正常对吗?好,那我们再来添加一个文件:

    a b c d e f g h i j k l m n o p q r s t u v w x y z

    a T O C h e l l o . t x t a e l e b y e . t x t m e z

    b e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C

    e H e l l o , _ w o r l d G o o d b y e , _ w o r l d

    f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    正如你所见,第二个文件被紧接着放置在第一个文件之后。这样的好处是你所有的文件都会紧密地放置在一起,这样读取它们将会非常的迅速和方便。要知道磁盘上最慢的就是读写头的移动了,它移动的越少,则读取的速度越快。

    但是,当我们需要修改第一个文件的时候,问题就出来了。现在假设我们需要在“hello.txt”文件的尾部加入两个感叹号,我们就会遇到问题:没有空间!文件“bye.txt”挡住了“hello.txt”的去路。这时候我们有两个解决方法,但是没有一个是完美的。

    1 我们把文件“hello.txt”删掉,然后再“bye.txt”后面加入修改过后的“hello.txt”。

    2 我们把文件“hello.txt”拆成两部分存储,这样在“bye.txt”之前就不会有空的磁盘空间了。

    第一种种方式表现出来就是这样:

    a b c d e f g h i j k l m n o p q r s t u v w x y z

    a T O C h e l l o . t x t a f n f b y e . t x t m e z

    b e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C

    e 0 0 0 0 0 0 0 0 0 0 0 0 G o o d b y e , _ w o r l d

    f H e l l o , _ w o r l d ! ! 0 0 0 0 0 0 0 0 0 0 0 0

    第二种种方式表现出来就是这样:

    a b c d e f g h i j k l m n o p q r s t u v w x y z

    a T O C h e l l o . t x t a e l e a f b f b y e . t x

    b t m e z e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C

    e H e l l o , _ w o r l d G o o d b y e , _ w o r l d

    f ! ! 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    这就是为什么FAT格式的文件系统经常需要磁盘碎片整理的原因。所有的文件都紧挨着存放,所以任何时候,只要一个文件需要增大,就会产生碎片。而任何文件被删除了,就会留下一个空白区域。于是很快磁盘就会变成一堆乱糟糟的随便和空白,效率就会变低了。

    而Linux

    却用一种不同的方式来处理这种问题。对于单用户来说Windows的文件系统已经够好的了,但是Linux生来就是为多用户设计的系统,它总是假设在同一

    时间有多个用户试图去操作不同的文件。所以Linux相对FAT文件系统,使用了另一种方法来设计自己的文件系统。Linux文件系统看起来是这样的:

    a b c d e f g h i j k l m n o p q r s t u v w x y z

    a T O C h e l l o . t x t h n s n 0 0 0 0 0 0 0 0 0 0

    b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C

    e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    g 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    j 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    k 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    n 0 0 0 0 0 0 0 H e l l o , _ w o r l d 0 0 0 0 0 0 0

    o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    p 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    r 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    u 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    v 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    当我们添加了文件以后就变成这样了:

    a b c d e f g h i j k l m n o p q r s t u v w x y z

    a T O C h e l l o . t x t h n s n b y e . t x t d u q

    b u 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C

    e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    g 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    j 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    k 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    n 0 0 0 0 0 0 0 H e l l o , _ w o r l d 0 0 0 0 0 0 0

    o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    p 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    r 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    u 0 0 0 G o o d b y e , _ w o r l d 0 0 0 0 0 0 0 0 0

    v 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    这种文件系统的好处是磁盘的磁头可以一直位于中间位置,而所有的文件平均下来都会非常近。

    当我们仍然给“hello.txt”加入两个感叹号时,我们来看看这会引起多大的麻烦:

    a b c d e f g h i j k l m n o p q r s t u v w x y z

    a T O C h e l l o . t x t h n u n b y e . t x t d u q

    b u 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C

    e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    g 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    j 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    k 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    n 0 0 0 0 0 0 0 H e l l o , _ w o r l d ! ! 0 0 0 0 0

    o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    p 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    r 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    u 0 0 0 G o o d b y e , _ w o r l d 0 0 0 0 0 0 0 0 0

    v 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    对了!一点麻烦都没有!

    Windows总是试图把文件存储在尽量靠近磁盘开始位置的地方,这导致当磁盘利用率变高的时候它经常会产生磁盘碎片。

    Linux却在整个磁盘上存储文件,所以当文件的大小需要改变的时候,总是有足够的空间。

    当然当磁盘利用率接近饱和的时候Linux也会需要文件整理。但是只要磁盘还有20%以上的可用空间,那么这种整理是基本不会发生的

    阅读(653) | 评论(0) | 转发(0) |

    展开全文
  • 尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过,对于家庭单机使用的Linux,或者误删文件后及时补救,还是可以恢复的。1.Ext2文件系...

    如何恢复误删除的Linux文件来源:互联网

    作者:未知

    时间:2009-05-06 22:43:43

    阅读:5011次

    作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过,对于家庭单机使用的Linux,或者误删文件后及时补救,还是可以恢复的。

    1.Ext2文件系统结构的简单介绍 Chinaz.com

    在Linux所用的Ext2文件系统中,文件是以块为单位存储的,默认情况下每个块的大小是1K,不同的块以块号区分。每个文件还有一个节点,节点中包含有文件所有者,读写权限,文件类型等信息。对于一个小于12个块的文件,在节点中直接存储文件数据块的块号。如果文件大于12个块,那么节点在12个块号之后存储一个间接块的块号,在这个间接块号所对应的块中,存储有256个文件数据块的块号(Ext2fs中每个块号占用4字节,这样一个块中所能存储的块号就是1024/4=256)。如果有更大的文件,那么还会在节点中出现二级间接块和三级间接块。

    2. 恢复被误删文件的方法 [中国站长站]

    大多数Linux发行版都提供一个debugfs工具,可以用来对Ext2文件系统进行编辑操作。不过在使用这个工具之前,还有一些工作要做。

    首先以只读方式重新挂载被误删的文件所在分区。使用如下命令:(假设文件在/usr分区)

    mount –r –n –o remount /usr -r表示只读方式挂载;-n表示不写入/etc/mtab,如果是恢复/etc上的文件,就加上这个参数。如果系统说xxx partion

    busy,可以用fuser命令查看一下是哪些进程使用这个分区上的文件: [中国站长站]

    fuser –v –m /usr

    如果没有什么重要的进程,用以下命令停掉它们:

    fuser -k –v –m /usr

    然后就可以重新挂载这些文件系统了。 Chinaz.com

    如果是把所有的文件统一安装在一个大的/分区当中,可以在boot提示符下用linux single进入单用户模式,尽量减少系统进程向硬盘写入数据的机会,要不干脆把硬盘挂在别的机器上。另外,恢复出来的数据不要写到/上面,避免破坏那些有用的数据。如果机器上有dos/windows,可以写到这些分区上面:

    mount –r –n /dev/hda1 /mnt/had

    然后就可以执行debugfs:(假设Linux在 /dev/hda5)

    #debugfs /dev/hda5

    就会出现debugfs提示符debugfs:

    使用lsdel命令可以列出很多被删除的文件的信息:

    debugfs:lsdel

    debugfs: 2692 deleted inodes found.

    Inode Owner Mode

    Size Blocks Time deleted

    164821 0 100600 8192 1/ 1 Sun May 13 19:22:46 2001

    …………………………………………………………………………………

    36137 0 100644 4 1/ 1 Tue Apr 24

    10:11:15 2001

    196829 0 100644 149500 38/ 38 Mon May 27 13:52:04 2001

    debugfs:

    列出的文件有很多(这里找到2692个),第一字段是文件节点号,第二字段是文件所有者,第三字段是读写权限,接下来是文件大小,占用块数,删除时间。然后就可以根据文件大小和删除日期判断那些是我们需要的。比如我们要恢复节点是196829的文件:

    可以先看看文件数据状态:

    debugfs:stat <196829>

    Inode: 196829 Type: regular Mode: 0644 Flags: 0x0 Version: 1

    User: 0 Group: 0 Size: 149500

    File ACL: 0 Directory ACL:

    0

    Links: 0 Blockcount: 38

    Fragment: Address: 0 Number: 0 Size:

    0

    ctime: 0x31a9a574 -- Mon May 27 13:52:04 2001

    atime: 0x31a21dd1 -- Tue

    May 21 20:47:29 2001

    mtime: 0x313bf4d7 -- Tue Mar 5 08:01:27 2001

    dtime:

    0x31a9a574 -- Mon May 27 13:52:04 2001

    BLOCKS:

    594810 594811 594814

    594815 594816 594817 ………………………………….

    TOTAL: 38

    然后就可以用dump指令恢复文件:

    debugfs:dump <196829> /mnt/hda/01.sav

    这样就把文件恢复出来了。退出debugfs:

    debugfs:quit

    另一种方法是手工编辑inode:

    debugfs:mi <196829>

    Mode

    [0100644]

    User ID [0]

    Group ID [0]

    Size [149500]

    Creation time

    [0x31a9a574]

    Modification time [0x31a9a574]

    Access time [0x31a21dd1]

    Chinaz.com

    Deletion time [0x31a9a574] 0

    Link

    count [0] 1

    Block count [38]

    File flags [0x0]

    Reserved1 [0]

    File

    acl [0]

    Directory acl [0]

    Fragment address [0]

    Fragment number [0]

    Fragment size [0]

    Direct Block #0 [594810]

    …………………………….

    Triple

    Indirect Block [0]

    使用mi指令后每次显示一行信息以供编辑,其它行可以直接按回车表示确认,把deletion time改成0(未删除),Link count改成1。改好后退出debugfs:

    debugfs:quit

    然后用fsck检查/dev/hda5

    fsck /dev/hda5 Chinaz.com

    程序会说找到丢失的数据块,放在lost+found里面。这个目录里的文件就是我们要的东东。

    展开全文
  • 某天,我启动了一个进程,向一个文件a.txt中写入内容,但不小心在另一个窗口用命令rm -f a.txt把它删除了,我以为这应该会触发一个警告,比如“不能删除一个打开的正在写入的文件”之类的,结果命令干脆的执行成功了...
  • 升级一个级别,这是值得的,以找出为什么文件在那里。你只是通过删除症状来治疗症状。如果某个程序使用它们来锁定资源会怎样?如果是这样,删除它们可能会导致腐败。 lsof is one way you might figure out which ...
  • 一、场景描述假如你要在linux删除大量文件,比如100万、1000万,像/var/spool/clientmqueue/的mail邮件, 像/usr/local/nginx/proxy_temp的nginx缓存等,那么rm -rf *可能就不好使了。二、解决方案rsync提供了一些...
  • 尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。1、Ext2文件系统结构的简单介绍在Linux所用作为一个多用户、多任务的操作系统,Linux下的...
  • 假如你要在linux删除大量文件,比如100万、1000万,像/var/spool/clientmqueue/的mail邮件,像/usr/local/nginx/proxy_temp的nginx缓存等,那么rm -rf *可能就不好使了。rsync提供了一些跟删除相关的参数rsync --...
  • 何谓Sed(Stream EDitor):Sed原UNIX系统上的非交谈式文字编辑器(non-interactive stream editor)。当Sed读入待编辑文件,会依编辑命令来进行文件的编辑工作。sed -i '$d' file如同其它UNIX的指令一般,Sed亦是由...
  • 我们ECS采用的是ssd云盘,大小40G,正常来说系统+应用相关文件磁盘使用不会超过50%,因为我们日志会根据日期和文件大小进行分割,有效期7天(非核心业务逻辑,保存有效期可以降低)。因为一次优化日志导致l...
  • 尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过,对于家庭单机使用的Linux,或者误删文件后及时补救,还是可以恢复的。1.Ext2文件...
  • 当时问题亟待解决,如果云盘支持在线扩容那操作很快,问题是当时不清楚云盘是否支持在线扩容,且扩容的步骤相比使用命令行删除文件慢太多。 云盘扩容步骤: 创建快照 在控制台扩容云盘容量(离线扩容还需要重启ECS...
  • linux怎么恢复删除的文件

    千次阅读 2021-01-21 22:00:29
    尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过,对于家庭单机使用的Linux,或者误删文件后及时补救,还是可以恢复的 一、用运...
  • 作为一个多用户、多任务的操作系统,下的文件一旦被删除,是难以恢复...1、Ext2文件系统结构的简单介绍在linux所用的Ext2文件系统中,文件是以块单位的,默认情况下每个块的大小是1K,不同的块以块号区分。每个文...
  • 对于大多数计算机用户而言,查找并替换重复的文件是一个常见的需求...fdupes——在Linux中查找并删除重复文件fdupes是啥东东?fdupes是Linux下的一个工具,它由Adrian Lopez用C编程语言编写并基于MIT许可证发行,该...
  • 进入这些目录里使用ls命令是愚蠢的做法,而直接执行rm *,没有任何反应,文件数量也没有减少,也就是说,在海量文件目录里直接使用rm命令进行删除是无效的。那么正确的方法是什么呢?有两种方法可选:第一种:find /...
  • 功能说明:删除别名。...unalias[-a][别名]补充说明:unaliasshell内建指令,可删除别名... 直接执行alias显示系统内置别名命令,用好这个命令将会您节省很多宝贵时间.[root@linuxso.com ~]#aliasaliascp='cp-i'ali...
  • 前言 注意本文说的“海量”并不是指体积大,而是指数量,比如一个目录下有数百万个小文件。最近在优化服务器时发现...那么正确的方法是什么呢?有两种方法可选: 第一种: 1 find /path/to/dir.
  • Linux screen命令

    2021-05-09 02:58:31
    screen是什么?Screen是一个全屏窗口管理器,它可以在多个进程之间多路复用一个物理终端。Screen中有会话的概念,用户可以在一个会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telent/SSH连接...
  • Linux中找回误删除的文件作为一个多用户、多任务的Linux操作系统,会出现在没有备份的情况下将一些用户文件误删的情况,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在文件节点中作删除标记,并不真正...
  • linux磁盘空间文件删除后磁盘又反复被占满解决方法: lsof | grep delete | awk ‘{print $2}’ | xargs kill -9
  • 尽管删除命令只是在档节点中作删除标记,并不真正清除文件内容,但是其它用户和一些有写盘动作的进程会很快覆盖这些资料。不过,对于家庭单机使用的Linux,或者误删档后及时补救,还是可以恢复的。本文引用地址:...
  • 2.你可以发现perl的脚本实际上如下:$ time perl -e 'unlink for ( )'$ time perl -e 'for(){((stat)[9]real 0m30.646suser 0m1.365ssys 0m8.623s--//我测试...我发现unlink实际上是也是linux的一个命令。$ man unl...
  • 进入这些目录里使用ls命令是愚蠢的做法,而直接执行rm * , 没有任何反应,文件数量也没有减少,也就是说,在海量文件目录里直接使用rm命令进行删除是无效的。那么正确的方法是什么呢?有两种方法可选:]#find /path...
  • (在繁忙的系统上,你当然会得到不同的结果,但希望这会让你知道会发生什么).如果我在你的椅子上,我会尝试获得该场景的基线基准:>确定操作将在与其他所有设备隔离的裸硬件上花费多长时间(是的,它应该花费很多,甚至...
  • 文章目录显示当前目录命令(pwd)创建目录命令(mkdir)删除命令(rm)目录切换命令(cd)结尾 显示当前目录命令(pwd) pwd命令的作用,主要显示当前所在的目录,比如:我们不断的切换目录,此时如果我们想查看当前所在目录。...
  • 根据提示,依次输入“n”,“p”“1”,两次回车,“wq”,分区就开始了,很快就会完成。3、 查看新的分区使用“fdisk -l”命令可以看到,新的分区xvdb1已经建立完成了。 4、格式化新分区以ext3例:使用“mkfs.ext...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 54,347
精华内容 21,738
关键字:

为什么linux删除很快

linux 订阅