0 0

LINUX find 命令怎么才能只找当先目录下的文件而不找子目录下的相同文件5

小弟目录如下
/home/mytest下面有4个包文件.zip,该目录下还有2011/02-2011目录这个目录下you同样的4个zip文件.
问题:
我用find . -name "*.zip" -print 查找,结果会打印出mytest 目录及子目录下的文件,我只想要4个可出来的是8个
求解 怎么才能让只出来当前目录下的4个

问题补充:
deepfuture 写道
-xdev 只查找当前目录下的文件


你的照样能带出子目录里的同样的文件出来

问题补充:找到个
find . ! -name "." -type d -prune -o -type f -iname "*.zip" -print
这个就可以实现不过有点长 ..
2011年3月11日 11:10

4个答案 按时间排序 按投票排序

0 0

采纳的答案

加个-maxdepth n参数指定查找最大深度就可以了
find . -maxdepth 1 -name "*.zip" -print

2011年3月11日 11:30
0 0

-xdev 只查找当前目录下的文件

2011年3月11日 11:21
0 0

find :查找目录或者文件

语 法
find[必要参数][选择参数]功 能find 命令:用于在文件树种查找文件,并作出相应的处理
类似命令: locate  ls  locatetedb  xargs  regex  stat  lstat  printf  file   

相关教程: find 命令   

执行权限: 超级用户 普通用户

命令属性: 文件管理



参数必要参数

-daystart 时间基准从当日算起
-prune 忽略某个目录
-depth 指定搜索顺序,从文件树的最子层目录查起
-empty 查找空文件或空目录
-false 设置成find命令返回值为false
-follow 不查找符号链接
-mount等同于“-xdev”,不进入其他文件系统查找
-noleaf 不考虑硬链接限制
-nouser 没有用户的文件
-nogroup 没有群组的文件
-print 将查找结果列到标准输出,但是find的返回值必须为真
-xdev 只查找当前目录下的文件

选择参数

-amin<时间> 指定时间内曾被存取过的文件,单位为分钟
-anewer<文件或目录>
-atime<24小时数> 如2=48小时,3=72小时,设置为3:72小时之前修改过的文件;+3:超过72小时之前修改过的文件;-3:72小时之内修改过的文件
-ctime<时间> 等同于“-atime<24小时数>”
-exec<命令> 执行指定的命令,但是find返回的值必须为真
-ok<命令> 等同于“-exec<命令> ”
-fls<文件> 将命令运行的结果保存到指定文件
-fprint<文件> 将结果输出到指定的文件
fstype<文件类型> 只查找指定文件类型的文件或者目录
-group<群组> 查找属于指定群组的文件或目录
-name<样式> 指定字符串作为搜索样式
-szie<大小> 查找指定大小的文件 单位为字节
-type<文件类型> 找找指定文件类型的文件
-user<用户> 查找指定用户的文件或目录
-printf<样式> 指定数
--help 显示帮助信息
--version 显示版本信息

【文件类型】

f :普通文件
d :目录
l :符号链接
b :块设备
c :字符设备
p :管道文件
s :Socket

【常见表示】

$HOME :主目录

~ :主目录
. :当前目录

2011年3月11日 11:21
0 0

3、忽略某个目录

如果在查找文件时希望忽略某个目录,因为你知道那个目录中没有你所要查找的文件,那么可以使用-prune选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略。

如果希望在/apps目录下查找文件,但不希望在/apps/bin目录下查找,可以用:

$ find /apps -path "/apps/bin" -prune -o -print


4、使用find查找文件的时候怎么避开某个文件目录

比如要在/usr/sam目录下查找不在dir1子目录之内的所有文件

find /usr/sam -path "/usr/sam/dir1" -prune -o -print

find [-path ..] [expression] 在路径列表的后面的是表达式

-path "/usr/sam" -prune -o -print 是 -path "/usr/sam" -a -prune -o
-print 的简写表达式按顺序求值, -a 和 -o 都是短路求值,与 shell 的 && 和 || 类似如果 -path "/usr/sam" 为真,则求值 -prune , -prune 返回真,与逻辑表达式为真;否则不求值 -prune,与逻辑表达式为假。如果 -path "/usr/sam" -a -prune 为假,则求值 -print ,-print返回真,或逻辑表达式为真;否则不求值 -print,或逻辑表达式为真。

这个表达式组合特例可以用伪码写为

if -path "/usr/sam"  then
          -prune
else
          -print

避开多个文件夹

find /usr/sam \( -path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -print

圆括号表示表达式的结合。
\ 表示引用,即指示 shell 不对后面的字符作特殊解释,而留给 find 命令去解释其意义。

查找某一确定文件,-name等选项加在-o 之后

#find /usr/sam  \(-path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -name "temp" -print

2011年3月11日 11:16

相关推荐

    使用find命令查找Linux中的隐藏文件的方法.docx

    使用find命令查找Linux中的隐藏文件的方法 find命令是Linux和Unix系统中最强大和灵活的命令之一,能够根据不同的选项和参数来实现各种文件搜索和管理任务。下面将详细介绍如何使用find命令查找Linux中的隐藏文件。 ...

    Linux常用文件命令

    mkdir命令用于创建新目录,cd命令用于切换目录,ls命令用于显示目录下的文件和子目录。使用ls -l命令可以显示文件的详细信息,包括访问权限、所有者、组、大小、修改时间等。 四、文件操作 Linux提供了多种文件...

    linux find命令使用手册

    这意味着`find`只会检查符号链接本身的属性,而不是其所指向的文件。 - **`-D debugopts`**:调试选项。可以用来调试`find`命令的行为,这对于开发者和高级用户非常有用。 - **`-O level`**:兼容旧版本的`find`命令...

    Linux Find命令详解---教你认识强大的Linux Find命令

    Linux Find命令是Linux系统中一个极其重要的工具,它允许用户在文件系统中查找符合特定条件的文件和目录。这个命令的灵活性和强大性使得它成为系统管理员和开发者的必备技能。下面将详细介绍Linux Find命令的一些...

    linux查找文件命令find.docx

    Linux 查找文件命令 find Linux 操作系统中查找文件是一件比较麻烦的事情,需要使用专门的“查找”命令来寻找在硬盘上的文件。Find 命令是 Linux 中最常用的查找文件命令,可以帮助用户快速地查找到需要的文件。 ...

    linux查找文件命令find

    但是普通用户使用“find”命令时也有可能遇到这样的问题,那就是 Linux 系统中系统管理员 ROOT 可以把某些文件目录设置成禁止访问模式。这样普通用户就没有权限用“find”命令来查询这些目录或者文件。 为了避免...

    Linux中find命令的用法汇总

    Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/时间、文件大小等等。在这篇文章中,我们将学习如何使用 find 命令以及它所提供的选项来查找...

    Linux文件查找命令find

    该命令会搜索`/var/logs`目录下所有`.log`文件,找出超过5天未修改的,并在删除前询问用户确认。 #### 结论 `find`命令结合`xargs`使用可以更高效地处理大量文件的查找与操作。在实际应用中,`find`命令的强大功能...

    linux下find命令的用法

    "linux下find命令的用法" Linux 操作系统下的文件查找命令是 find 命令,这个命令可以帮助用户在 Linux 系统中快速查找需要的文件。find 命令的使用方法非常多样化,可以根据文件名、文件大小、文件类型、修改时间...

    linux下find命令

    Linux 下 find 命令详解 find 命令是 Linux 系统中一个功能强大且常用的命令,用于在文件系统中搜索文件。它可以根据文件的各种属性,如名称、权限、所有者、组、时间戳、大小等,来查找指定的文件。 基本语法 ...

    linux下find命令详解

    ### Linux 下 find 命令详解 #### 功能概述 `find` 命令是在 Linux 目录结构中搜索文件并执行特定操作的强大工具。它支持多种查找条件,可以根据文件名、文件属性、时间戳等多种标准进行筛选。 #### 语法格式 ```...

    linux常用命令含目录操作目录,文件操作命令等等

    以下是 Linux 中常用的命令,包括目录操作命令、文件操作命令和权限操作命令。 目录操作命令 1. ls 命令:列出文件或目录下的文件名 语法:ls [-atFlgR] [name] 示例:[#root@rhel4 ~]# ls -la /home //列出/...

    Linux文件查找命令find,xargs详述

    Linux文件查找命令`find`和`xargs`是Linux系统中非常重要的工具,它们帮助用户在文件系统中高效地定位和处理文件。本文将详细解释这两个命令的基本使用和相关选项。 `find`命令是一个功能强大的命令,用于在指定...

    linux find 命令大全

    `find` 命令是 Linux 系统中一个非常强大的工具,用于在指定路径下查找文件。它支持多种选项来帮助用户精确地定位到需要的文件。通过 `find` 命令,用户可以基于文件名、文件类型、修改时间、访问时间等属性来筛选...

    Linux Find 命令详解

    ### Linux Find 命令详解 #### 一、前言:了解 find 命令 `find` 是 Linux 和类 Unix 系统中一个非常强大的工具,用于在文件系统中搜索文件。它提供了多种选项来根据不同的标准进行精确查找,如文件名、权限、拥有...

    linux下find命令查找排除命令(简单明了)

    ### Linux下的find命令查找与排除命令详解 在Linux系统中,`find`命令是一个非常强大的工具,用于在文件系统中搜索文件。通过结合不同的选项和参数,用户可以精确地定位到所需的文件或目录。本文将重点介绍如何使用...

    Linux find 按文件修改时间查找文件

    `find`命令支持多种表达式,如文件名、文件大小、文件类型、文件权限等,而本文将重点介绍基于文件修改时间的搜索方式。 #### 2. 文件修改时间概述 Linux系统中有三种主要的文件时间戳:访问时间(Access Time)、...

    linux find命令说明

    Find 命令的基本语法是 `find [pathname] [expression]`,其中 `pathname` 是要搜索的目录或文件,而 `expression` 是一个或多个条件,用于指定要查找的文件或目录的特征。 name 选项 使用 `name` 选项可以根据...

    linux find命令精通指南

    `find` 命令作为 Linux 下极为常用且功能强大的工具之一,在文件管理和系统维护方面扮演着至关重要的角色。掌握 `find` 的使用方法不仅可以提高工作效率,还能在处理复杂文件结构时显得游刃有余。 #### 二、`find` ...

    linux常用的find命令

    ### Linux常用的find命令详解 #### 一、引言 在Linux系统中,`find`命令是一种非常强大且灵活的工具,用于在文件系统中搜索文件。对于初学者来说,掌握`find`的基本用法和一些高级特性是非常重要的,它可以帮助...

Global site tag (gtag.js) - Google Analytics