linux 指定文件的大小 linux删除指定文件

大家好,今天小编来为大家解答以下的问题,关于linux 指定文件的大小,linux删除指定文件这个很多人还不知道,现在让我们一起来看看吧!

linux查看文件大小linux用stat查看指定文件

获取到任何文件或文件系统的所有信息,仅需要一条 Linux命令。

在 GNUcoreutils软件包中包含stat命令,它提供了关于文件和文件系统包括文件大小、节点位置、访问权限和 SELinux上下文,以及创建和修改时间等各种元数据。通常情况下,你需要多个不同命令获取的信息,而这一个命令就可以实现。

在 Linux上安装 stat命令

在 Linux系统中,可能已经预装了stat命令,因为它属于核心功能软件包,通常默认包含在 Linux发行版里。

如果系统中没有安装stat命令,你可以使用包管理器安装coreutils软件包。

另外,你可以通过源码编译安装 coreutils包。

获取文件状态

运行stat命令可以获取指定文件或目录易读的状态信息。

$ stat planets.xml File: planets.xml Size: 325 Blocks: 8 IO Block: 4096 regular fileDevice: fd03h/64771d Inode: 140217 Links: 1Access:(0664/-rw-rw-r--) Uid:(1000/tux) Gid:(100/users)Context: unconfined_ubject_r:user_home_t:s0 Access: 2021-08-17 18:26:57.281330711 1200 Modify: 2021-08-17 18:26:58.738332799 1200 Change: 2021-08-17 18:26:58.738332799 1200 Birth: 2021-08-17 18:26:57.281330711 1200输出的信息易懂,但是包含了很多的信息,这里是stat所包含的项:

File:文件名Size:文件大小,以字节表示Blocks:在硬盘驱动器上为文件保留的数据块的数量IO Block:文件系统块大小regular file:文件类型(普通文件、目录、文件系统)Device:文件所在的设备Inode:文件所在的 Inode号Links:文件的链接数Access、UID、GID:文件权限、用户和组的所有者Context:SELinux上下文Access、Modify、Change、Birth:文件被访问、修改、更改状态以及创建时的时间戳精简输出

对于精通输出或者想要使用其它工具(例如:awk)解析输出的人,这里可以使用--terse(短参数为-t)参数,实现没有标题或换行符的格式化输出。

$ stat--terse planets.xmlplanets.xml 325 8 81b4 100977 100 fd03 140217 1 0 0 1629181617 1629181618 1629181618 1629181617 4096 unconfined_ubject_r:user_home_t:s0自定义格式你可以使用--printf参数以及与printf类似的语法定义自己的输出格式。stat的每一个属性都有一个格式序列(%C表示 SELinux上下文,%n表示文件名等等),所以,你可以定义输出格式。

$ stat--printf="%n\n%C\n" planets.xmlplanets.xmlunconfined_ubject_r:user_home_t:s0$$ stat--printf="Name:%n\nModified:%y\n" planets.xml Name: planets.xml Modified: 2021-08-17 18:26:58.738332799 1200下面是一些常见的格式序列:

%a访问权限%F文件类型%n文件名%U用户名%u用户 ID%g组 ID%w创建时间%y修改时间

在stat手册和coreutils信息页中都有完整的格式化序列列表。

文件信息

如果你曾尝试解析过ls-l的输出,那么,你会很喜欢stat命令的灵活性。你并不是每次都需要stat提供的所有信息,但是,当你需要其中一些或全部的时候它是非常有用的。不管你是读取默认输出,还是你自己创建的查询输出,stat命令都可以查看所需的数据。

linux下怎么查看文件夹中各个文件的大小

查看文件夹中各类文件大小的命令:

du [-abcDhHklmsSx] [-L<符号连接>][-X<文件>][--block-size][--exclude=<目录或文件>] [--max-depth=<目录层数>][--help][--version][目录或文件]

常用的参数列出:

-a或-all为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。-

b或-bytes显示目录或文件大小时,以byte为单位。

-c或–total除了显示目录或文件的大小外,同时也显示所有目录或文件的总和。

-D或–dereference-args显示指定符号连接的源文件大小。

-h或–human-readable以K,M,G为单位,提高信息的可读性。

-H或–si与-h参数相同,但是K,M,G是以1000为换算单位,而不是以1024为换算单位。

-k或–kilobytes以1024 bytes为单位。

-l或–count-links重复计算硬件连接的文件。

-L<符号连接>或–dereference<符号连接>显示选项中所指定符号连接的源文件大小。

-m或–megabytes以1MB为单位。

-s或–summarize仅显示总计,即当前目录的大小。

-S或–separate-dirs显示每个目录的大小时,并不含其子目录的大小。

-x或–one-file-xystem以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。

-X<文件>或–exclude-from=<文件>在<文件>指定目录或文件。

–exclude=<目录或文件>略过指定的目录或文件。

–max-depth=<目录层数>超过指定层数的目录后,予以忽略。

–help显示帮助。

–version显示版本信息。

Linux下查看指定文件夹和文件的大小

df命令:查看目前所有文件系统的可用空间及使用情况

df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力

复制代码代码如下:

df-lh

参数-h表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB等易读的格式。

上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到/dev/sda1这个分割区被挂在根目录下。

接下来的四个字段 Size、Used、Avail、及 Use%分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比

du命令:查询文件或文件夹的磁盘使用空间

如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:–max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小。

复制代码代码如下:

[root@bsso yayu]# du-h–max-depth=1 work/testing

27M work/testing/logs

35M work/testing

[root@bsso yayu]# du-h–max-depth=1 work/testing/*

8.0K work/testing/func.php

27M work/testing/logs

8.1M work/testing/nohup.out

8.0K work/testing/testing_c.php

12K work/testing/testing_func_reg.php

8.0K work/testing/testing_get.php

8.0K work/testing/testing_g.php

8.0K work/testing/var.php

[root@bsso yayu]# du-h–max-depth=1 work/testing/logs/

27M work/testing/logs/

[root@bsso yayu]# du-h–max-depth=1 work/testing/logs/*

24K work/testing/logs/errdate.log_show.log

8.0K work/testing/logs/pertime_show.log

27M work/testing/logs/show.log

查看linux文件目录的大小和文件夹包含的文件数

复制代码代码如下:

du-sh xmldb/统计总数大小

du-sm*| sort-n//统计当前目录大小并安大小排序

du-sk*| sort-n

du-sk*| grep guojf//看一个人的大小

du-m| cut-d“/”-f 2//看第二个/字符前的文字

查看此文件夹有多少文件/*/*/*有多少文件

复制代码代码如下:

du xmldb/

du xmldb/*/*/*|wc-l

du与df的区别

du统计文件大小相加

df统计数据块使用情况

如果有一个进程在打开一个大文件的时候,这个大文件直接被rm或者mv掉,则du会更新统计数值,df不会更新统计数值,还是认为空间没有释放。直到这个打开大文件的进程被Kill掉。

如此一来在定期删除/var/spool/clientmqueue下面的文件时,如果没有杀掉其进程,那么空间一直没有释放。

使用下面的命令杀掉进程之后,系统恢复。

fuser-u/var/spool/clientmqueue

ls命令:以K、M、G为单位查看文件大小

复制代码代码如下:

ls

ls-l

ls-lh

ll-h

阅读剩余
THE END