使用find以非递归方式搜索目录中的特定文件。 AIX

时间:2017-07-31 23:20:07

标签: unix aix

我有一个脚本,它有以下命令。我试图以这样的方式编辑它,它只搜索路径目录中的文件而不进入子目录。那不是递归搜索

查找{路径} -name“cor *”-type f -exec ls -l {} \;

示例:该命令应仅提供cor123.log而不是cor456.log。目前它给出了两者

<Path>
     ..cor123.log
    <directory>
      ..cor456.log

我尝试使用-maxdepth但它在AIX中不受支持。 -prune和-depth也没有帮助。

将不胜感激任何帮助。感谢

3 个答案:

答案 0 :(得分:1)

您可以使用

textarea

以非递归方式查找文件和目录。

所以在你的情况下,这个会起作用:

*** Variables ***
${endpoint}     stuff

*** Keywords ***

答案 1 :(得分:0)

您是否需要find才能选择文件? 如果您知道以cor开头的所有文件都是常规文件,则可以使用
ls -l ${Path}/cor*

ls -l ${Path}/cor*.log

当您需要-type f时,您可以尝试过滤结果 文件名不能包含/,因此请在路径后使用/删除所有内容 我们不知道$ {Path}的最后一个字符。它可以是/,这会使grep -Ev "${Path}/.*/"过滤器无效。路径之后,在查找下一个/之前至少需要一个字符。

find "${Path}" -name "cor*" -type f 2>/dev/null| grep -Ev "${Path}..*/" | xargs -ls

答案 2 :(得分:0)

最新答案,但可以保存一些答案。在aix中

find /some/directory/* -prune -type f -name *.log

例如,使路径的最后一个斜杠带有通配符,然后是-prune

  

/ *

find /some/directory/* -prune -name "cor*" -type f -exec ls -l {} \

经过测试。