欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何在Linux下递归查看所有文件或目录?

程序员文章站 2022-07-13 08:17:51
...


find命令,是个非常nice的命令,如果你还不了解这个命令,可以使用man find命令,来查看具体的介绍,find命令结合grep命令之后是非常强大的:

(1)找出某个目录下所有的文件,并且是csv结尾的:

[search@dnode1 2015-04-10]$ find ./conversions/ -type f | grep "csv$" 
./conversions/pv/tmp_search_date_cate_pv/tmp_search_date_cate_pv.csv
./conversions/pv/tmp_search_date_algo_channel_pv/tmp_search_date_algo_channel_pv.csv
./conversions/pv/tmp_search_date_pv/tmp_search_date_pv.csv
./conversions/pv/tmp_search_date_algo_pv/tmp_search_date_algo_pv.csv
./conversions/pv/tmp_search_date_algo_country_pv/tmp_search_date_algo_country_pv.csv
./conversions/pv/tmp_search_date_algo_cate_pv/tmp_search_date_algo_cate_pv.csv
[search@dnode1 2015-04-10]$ 



(2)同理找出以0结尾的文件:


[search@dnode1 2015-04-10]$ find ./conversions/ -type f | grep "0$"    
./conversions/uv/tmp_search_date_algo_uv/000000_0
./conversions/uv/tmp_search_date_algo_channel_uv/000000_0
./conversions/uv/tmp_search_date_cate_uv/000000_0
./conversions/uv/tmp_search_date_algo_country_uv/000000_0
./conversions/uv/tmp_search_date_country_uv/000000_0
./conversions/uv/tmp_search_date_channel_uv/000000_0
./conversions/uv/tmp_search_date_uv/000000_0
./conversions/uv/tmp_search_date_algo_cate_uv/000000_0
./conversions/keyword/tmp_search_kw_algo_rate/000000_0
./conversions/keyword/tmp_search_kw_rate/000000_0
./conversions/pv/tmp_search_date_cate_pv/000000_0
./conversions/pv/tmp_search_date_algo_channel_pv/000000_0
./conversions/pv/tmp_search_date_pv/000000_0
./conversions/pv/tmp_search_date_algo_pv/000000_0
./conversions/pv/tmp_search_date_algo_country_pv/000000_0
./conversions/pv/tmp_search_date_channel_pv/000000_0
./conversions/pv/tmp_search_date_algo_cate_pv/000000_0
./conversions/pv/tmp_search_date_country_pv/000000_0
[search@dnode1 2015-04-10]$ 



(3)查看所有的目录:


[search@dnode1 2015-04-10]$ find ./conversions/ -type d              
./conversions/
./conversions/uv
./conversions/uv/tmp_search_date_algo_uv
./conversions/uv/tmp_search_date_algo_channel_uv
./conversions/uv/tmp_search_date_cate_uv
./conversions/uv/tmp_search_date_algo_country_uv
./conversions/uv/tmp_search_date_country_uv
./conversions/uv/tmp_search_date_channel_uv
./conversions/uv/tmp_search_date_uv
./conversions/uv/tmp_search_date_algo_cate_uv
./conversions/keyword
./conversions/keyword/tmp_search_kw_algo_rate
./conversions/keyword/tmp_search_kw_rate
./conversions/pv
./conversions/pv/tmp_search_date_cate_pv
./conversions/pv/tmp_search_date_algo_channel_pv
./conversions/pv/tmp_search_date_pv
./conversions/pv/tmp_search_date_algo_pv
./conversions/pv/tmp_search_date_algo_country_pv
./conversions/pv/tmp_search_date_channel_pv
./conversions/pv/tmp_search_date_algo_cate_pv
./conversions/pv/tmp_search_date_country_pv
[search@dnode1 2015-04-10]$ 

find命令的说明:
[search@dnode1 2015-04-10]$ man find
FIND(1)                                                                FIND(1)

NAME
       find - search for files in a directory hierarchy

SYNOPSIS
       find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

DESCRIPTION
       This  manual page documents the GNU version of find.  GNU find searches the directory tree rooted at each given file name by evaluating the given expression from left to
       right, according to the rules of precedence (see section OPERATORS), until the outcome is known (the left hand side is false for and operations, true for or),  at  which
       point find moves on to the next file name.

       If  you are using find in an environment where security is important (for example if you are using it to search directories that are writable by other users), you should
       read the "Security Considerations" chapter of the findutils documentation, which is called Finding Files and comes with findutils.   That document also  includes  a  lot
       more detail and discussion than this manual page, so you may find it a more useful source of information.

OPTIONS
       The  -H, -L and -P options control the treatment of symbolic links.  Command-line arguments following these are taken to be names of files or directories to be examined,
       up to the first argument that begins with ‘-’, or the argument ‘(’ or ‘!’.  That argument and any following arguments are taken to be the expression describing  what  is
       to  be  searched  for.  If no paths are given, the current directory is used.  If no expression is given, the expression -print is used (but you should probably consider
       using -print0 instead, anyway).

       This manual page talks about ‘options’ within the expression list.  These options control the behaviour of find but are specified immediately after the last  path  name.
       The  five  ‘real’  options -H, -L, -P, -D and -O must appear before the first path name, if at all.  A double dash -- can also be used to signal that any remaining argu-
       ments are not options (though ensuring that all start points begin with either ‘./’ or ‘/’ is generally safer if you use wildcards in the list of start points).

       -P     Never follow symbolic links.  This is the default behaviour.  When find examines or prints information a file, and the file is a symbolic  link,  the  information
              used shall be taken from the properties of the symbolic link itself.

       -L     Follow  symbolic  links.   When  find examines or prints information about files, the information used shall be taken from the properties of the file to which the
              link points, not from the link itself (unless it is a broken symbolic link or find is unable to examine the file to which the link points).  Use  of  this  option
              implies -noleaf.  If you later use the -P option, -noleaf will still be in effect.  If -L is in effect and find discovers a symbolic link to a subdirectory during
              its search, the subdirectory pointed to by the symbolic link will be searched.

              When the -L option is in effect, the -type predicate will always match against the type of the file that a symbolic link points to rather  than  the  link  itself
              (unless the symbolic link is broken).  Using -L causes the -lname and -ilname predicates always to return false.

       -H     Do  not  follow  symbolic  links,  except while processing the command line arguments.  When find examines or prints information about files, the information used
              shall be taken from the properties of the symbolic link itself.   The only exception to this behaviour is when a file specified on the command line is a  symbolic
              link,  and  the  link  can  be resolved.  For that situation, the information used is taken from whatever the link points to (that is, the link is followed).  The
              information about the link itself is used as a fallback if the file pointed to by the symbolic link cannot be examined.  If -H is in effect and one of  the  paths
              specified  on  the  command  line  is  a symbolic link to a directory, the contents of that directory will be examined (though of course -maxdepth 0 would prevent
              this).

       If more than one of -H, -L and -P is specified, each overrides the others; the last one appearing on the command line takes effect.  Since it  is  the  default,  the  -P
       option should be considered to be in effect unless either -H or -L is specified.

       GNU find frequently stats files during the processing of the command line itself, before any searching has begun.  These options also affect how those arguments are pro-
       cessed.  Specifically, there are a number of tests that compare files listed on the command line against a file we are currently considering.  In  each  case,  the  file
       specified  on  the command line will have been examined and some of its properties will have been saved.  If the named file is in fact a symbolic link, and the -P option
       is in effect (or if neither -H nor -L were specified), the information used for the comparison will be taken from the properties of the  symbolic  link.   Otherwise,  it
       will  be taken from the properties of the file the link points to.  If find cannot follow the link (for example because it has insufficient privileges or the link points
       to a nonexistent file) the properties of the link itself will be used.

:

相关标签: linux java find

上一篇: ManyToMany 删除

下一篇: MongoDB查询