unix 查找某个文件

2016-06-24 13:00:49 qianggezhishen 阅读数 2209
  • 使用gzip压缩文件

    学习本课程可以对Linux有一个整体的掌握,对Linux命令可熟练使用 对vim和nano常用编辑器可以全面的学习使用 深入探究shell编程,可学习shell编程的详细语法知识

    4人学习 赵晓希
    免费试看

我们怎么样在像 Linux 或者 Unix 这样的类似系统中查找前 10 大文件和目录?

通常我们有必要需要知道哪些文件或者目录正在吞噬着磁盘空间。更进一步来说,就是需要在文件系统中的特定目录如 /tmp, /var 或者 /home 下查找。这篇文章将帮助我们在文件系统中查找最大的文件或目录。

这里没有简单的命令让我们在 Linux/UNIX/BSD 文件系统中找到最大的文件/目录。但我们可以通过如下的四个命令组合使用来实现:

  • du 命令:估计磁盘空间使用量
  • sort 命令:排序
  • head 命令:取前几条输出
  • find 命令:查找文件

在控制台输入如下命令找出是大的 10 个文件和目录:

du -a /var -h | sort -n -r | head -n 10

输出示例:

1008372 /var
313236  /var/www
253964  /var/log
192544  /var/lib
152628  /var/spool
152508  /var/spool/squid
136524  /var/spool/squid/00
95736   /var/log/mrtg.log
74688   /var/log/squid
62544   /var/cache

如果要更可读,则可以如下:

$ cd /path/to/some/where
$ du -hsx * | sort -rh | head -10

这里,

  • du -h : 以人可读的格式显示 (eg. 1K, 234M, 2G)
  • du -s : 显示每个参数的总数。 (summary)
  • du -x : 排除目录
  • sort -r : 逆序 (reverse)
  • sort -h : human readable
  • head -10 或者 head -n 10 : 显示前 10 条。

以上命令仅在安装了 GNU/sort 后可用,其他的 类 UNIX 系统需要用如下的版本:

for i in G M K; do du -ah | grep [0-9]$i | sort -nr -k 1; done | head -n 11

示例输出:

179M    .
84M ./uploads
57M ./images
51M ./images/faq
49M ./images/faq/2013
48M ./uploads/cms
37M ./videos/faq/2013/12
37M ./videos/faq/2013
37M ./videos/faq
37M ./videos
36M ./uploads/faq

用如下的命令找出某个目录和其子目录下最大的文件:

## Warning: only works with GNU find ##
find /path/to/dir/ -printf '%s %p\n'| sort -nr | head -10
find . -printf '%s %p\n'| sort -nr | head -10

示例输出:

5700875 ./images/faq/2013/11/iftop-outputs.gif
5459671 ./videos/faq/2013/12/glances/glances.webm
5091119 ./videos/faq/2013/12/glances/glances.ogv
4706278 ./images/faq/2013/09/cyberciti.biz.linux.wallpapers_r0x1.tar.gz
3911341 ./videos/faq/2013/12/vim-exit/vim-exit.ogv
3640181 ./videos/faq/2013/12/python-subprocess/python-subprocess.webm
3571712 ./images/faq/2013/12/glances-demo-large.gif
3222684 ./videos/faq/2013/12/vim-exit/vim-exit.mp4
3198164 ./videos/faq/2013/12/python-subprocess/python-subprocess.ogv
3056537 ./images/faq/2013/08/debian-as-parent-distribution.png.bak

我们可以跳过目录,仅显示文件,输入:

find /path/to/search/ -type f -printf '%s %p\n'| sort -nr | head -10

或者

find /path/to/search/ -type f -iname "*.mp4" -printf '%s %p\n'| sort -nr | head -10

我们也可以用鸭子来猎取磁盘空间这头猪:

采用 alias

alias ducks='du -cks * | sort -rn | head'

运行如下命令来获取最大的 10 个文件或目录:

$ ducks

将输出:

这里写图片描述

译文出处:

http://www.cyberciti.biz/faq/how-do-i-find-the-largest-filesdirectories-on-a-linuxunixbsd-filesystem/

2011-08-23 15:52:46 iteye_8188 阅读数 1144
  • 使用gzip压缩文件

    学习本课程可以对Linux有一个整体的掌握,对Linux命令可熟练使用 对vim和nano常用编辑器可以全面的学习使用 深入探究shell编程,可学习shell编程的详细语法知识

    4人学习 赵晓希
    免费试看
今天要在unix中查找某个文件,但是忘记了文件的路径,还是在网上找到了解决方法(网络还是强大,也要感谢网友们提供的方法)

精确查找文件命令:
输入 find / -name 文件名
过一会儿就会在下一行显示文件所在的路径了

接着又在网上找到了其它方法
1.在当前文件下查找某文件的命令:find . -name 文件名

2.查找根目录下某个指定的文件夹:find / -name 文件夹名 -type f

使用"find / -name 文件名"这个命令查找是精确查找,特点:准确,但速度慢,消耗资源大
今天用这个命令时找了有一会儿才找到文件(可能是文件数量比较多吧)

还有一种是模糊查询命令:"whereis 文件名",特点:快速,但是是模糊查找
这个命令可以找到相似名称的文件所在的所有目录
2010-06-05 12:50:00 zlbvs24 阅读数 12413
  • 使用gzip压缩文件

    学习本课程可以对Linux有一个整体的掌握,对Linux命令可熟练使用 对vim和nano常用编辑器可以全面的学习使用 深入探究shell编程,可学习shell编程的详细语法知识

    4人学习 赵晓希
    免费试看

查找当前目录下的指定的core文件

Unix代码 复制代码
  1. find . -name "core"  
find . -name "core"


查找根目录下的指定的core文件

Unix代码 复制代码
  1. find / -name "core"  
find / -name "core"


查找根目录下的指定的core文件夹

Unix代码 复制代码
  1. find / -name "core" -type f  
find / -name "core" -type f


b(块文件) c (字符文件) 9Q9Linux联盟
d(目录) l (符号链接) p (命名管道) f (普通文件)

查找根目录下的指定的大小core文件

Unix代码 复制代码
  1. find / -name "core" - size +1024c  
find / -name "core" - size +1024c



查找文件中是否含有指定的字符 "10.71.110.89"

Unix代码 复制代码
  1. find / -name "web.xml" - type f |xargs grep "10.71.110.89"  
find / -name "web.xml" - type f |xargs grep "10.71.110.89"



删除所有的tar.gz结尾的文件

Unix代码 复制代码
  1. find / -name "*.tar.gz" - type f -exec rm -rf {} /;  
2013-11-27 11:47:31 kumidy1984 阅读数 595
  • 使用gzip压缩文件

    学习本课程可以对Linux有一个整体的掌握,对Linux命令可熟练使用 对vim和nano常用编辑器可以全面的学习使用 深入探究shell编程,可学习shell编程的详细语法知识

    4人学习 赵晓希
    免费试看

1.在文件中查找关键字

1)命令格式:find 路径 -name "文件名" | xargs grep 关键字

比如:查找当前目录下的所有包含12345的log文件

 find ./ -name "*.log" |xargs grep 12345

2)命令格式:grep 关键字 文件名

比如:查找当前目录下的所有包含12345的log文件

grep 12345 *.log

2.查找指定的文件名

命令格式:find 路径 -name "文件名"  [-type f]

比如,查找当前目录下的core文件

find . -name "core"    或者  find . -name "core"  -type f

3.待续...

2010-08-05 14:51:00 zhangxs_3 阅读数 3893
  • 使用gzip压缩文件

    学习本课程可以对Linux有一个整体的掌握,对Linux命令可熟练使用 对vim和nano常用编辑器可以全面的学习使用 深入探究shell编程,可学习shell编程的详细语法知识

    4人学习 赵晓希
    免费试看
  1. 查找当前目录下的指定的core文件
  2. find . -name "core"
  3. 查找根目录下的指定的core文件
  4. find / -name "core"
  5. 查找根目录下的指定的core文件夹
  6. 查找根目录下的指定的大小core文件 
  7. find / -name "core" - size +1024c
  8. 查找文件中是否含有指定的字符 "10.71.110.89"
  9. find / -name "*.tar.gz" - type f -exec rm -rf {} /;