尾部命令 - 在Solaris上按名称命名

时间:2015-06-05 12:03:31

标签: filenames solaris file-descriptor tail

有没有办法在Solaris 10上按名称拖尾文件? 相当于:

SELECT
 * FROM tblResume
WHERE
(
    Skills LIKE '%,'+(@SkillId)+',%'
    OR Skills LIKE (@SkillId)+',%'
    OR Skills LIKE '%,'+(@SkillId)
    OR Skills = (@SkillId)
)
AND (Experience LIKE @Exp)

solaris尾部手册显示没有这样的选择。只包含-f,它看起来像是按描述符跟踪文件。

4 个答案:

答案 0 :(得分:1)

根据GNU tail manual--follows-f相同:

-f, --follow[={name|descriptor}]
    output appended data as the file grows;

    an absent option argument means 'descriptor'

tail的POSIX描述中找到-f选项。但是,--follows选项(接受选项)不在POSIX中。 GNU手册继续描述与--follow不同的-f选项:

  

使用--follow(-f),tail 默认来跟随文件描述符,   这意味着即使尾部文​​件被重命名,尾部也会   继续追踪它的结束。此默认行为是不可取的   当你真的想跟踪文件的实际名称时,而不是   文件描述符(例如,日志轮换)。使用 - follow = name   案件。这导致tail以某种方式跟踪命名文件   适应重命名,删除和创建。

也就是说,如果重命名了实际文件,--follow会重新打开文件。 POSIX似乎没有解决这个用例。

Solaris与POSIX的差异没有直接等价(在manual中比较/usr/bin/tail/usr/xpg4/bin/tail)。

GNU tailcoreutils包的一部分。您可能已在{10}中的Solaris 10上安装了它。例如,/opt/sfw/bin/tail在我的Solaris 10计算机上显示为pkginfo

答案 1 :(得分:0)

Solaris没有 - 按照您的方式进行操作。

解决方法是重定向:

tail -f inputfile > filewritten_by_tail

答案 2 :(得分:0)

您最好的选择是从source或某个免费软件存储库安装GNU find

如果你真的想坚持使用Solaris 10捆绑find,那么你需要使用自定义监控程序来包装它,如果目标文件被更新,它将重新启动它。

答案 3 :(得分:-1)

就像solaris 11上的魅力一样!

/usr/bin/gtail -F