find 默认不查找软链接内的文件

介绍

find 给出的 find 语法是

    find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]

    find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]

    [-H | -L | -P] [-EXdsx] 这些就是 find 的可选选项。

选项说明

-P:不跟踪连接,默认选项

-L:跟踪连接

-H:不跟踪连接,除非链接是作为参数的

-E:将 -regex 解释为扩展正则表达式,而不是基本正则表达式

-X:允许 find 安全地配合使用 xargs,跳过名字里有界定符的文件

-d:先列出目录内文件再列出目录本身。find 默认先列出目录本身

-s:按照字典顺序列出文件

 

问题

今天发现一个问题: $user是软连接文件夹

fileList=`find $dataDir/$user -name "*.sql"`

之前一直没问题,今天有人反映文件不对。

查找后发现之前$user都是文件夹,昨天为了方便加了一个软链接进来,结果软链接内的文件查找不到

 

解决方法1:

fileList=`find $dataDir/$user/ -name "*.sql"`

$user后面加个/就好了。

 

解决方法2: -L查询软连接

fileList=`find -L $dataDir/$user -name "*.sql"`

$user后面加个/就好了。

 

你可能感兴趣的:(Linux)