Unix查找与目录匹配的目录
我有一个相当有趣的问题,我试图找到最佳解决方案。我正在为Emacs创建一个文件自动完成后端。这意味着我正在使用linux find
命令获取文件和目录。Unix查找与目录匹配的目录
后端给出了部分完成的路径的文件(如/usr/folder/foo
),我要抢,可以匹配两个目录下(如例如部分路径的所有文件和目录,它可以提供foo_bar/
,foo_bar/bar
,foo_bar/baz
,foo_bar/bat/
foo_baz
)。到目前为止,我只去过将其分为3个步骤
查找当前目录下的所有文件可以通过前缀
find foo* -type f -maxdepth 1
收集我们可能想通过
find foo* -type d -maxdepth 1
寻找所有可能的目录 使用每个这些目录中,使2个电话找(我需要能够文件和目录区分)
find foo_bar/ -type d -maxdepth 1 find foo_bar/ -type f -maxdepth 1
此解决方案涉及很多拨打find
(特别是因为必须为每个匹配的目录调用最后一步)的。这使候选人变得缓慢,特别是在大型文件系统中。理想情况下,我只想让一个电话获得所有的候选人。但我还没有找到一个好方法来做到这一点。有谁知道最佳解决方案?
回答:
看虽然find
联机帮助页,我结束了使用-printf
。
find -L foo* -maxdepth 1 -printf '%p\t%y\n'
给我我需要的一切。只有一个命令,区分文件和目录,搜索深度等。
以上是 Unix查找与目录匹配的目录 的全部内容, 来源链接: utcz.com/qa/267206.html