2012-11-26 62 views
0

我只对目录执行权限,我相信这意味着我可以在该目录中搜索特定的文件名。但是,当我在目录中并且执行以下操作时:unix-执行权限搜索目录

 find . -name "file.txt" 

我得到目录的权限被拒绝错误。我应该使用哪个命令?

回答

3

find尝试读取目录,并且您表示您没有读取目录的权限。如果您知道文件的名称,则目录上的搜索权限意味着您有权访问这些文件(当然,这取决于文件本身的权限)。对目录缺少读取权限意味着除了通过试错法或外部授予的知识之外,您无法找出目录中的哪些文件。

你想对文件做什么?

  • cat file.txt应该工作。
  • ls -l file.txt应该工作。
  • cp file.txt /some/where/readable应该工作。
+0

好的,谢谢你的帮助。如果我不知道该文件位于哪个子目录中,但知道文件名,是否可以使用递归搜索来查找它> – user1190650

+0

这取决于您是否知道子目录的名称。如果你知道他们,他们的权限允许你阅读和搜索,那么是的。如果您不知道子目录名称,或者它们的权限不允许您读取它们,则可以尝试通过直接访问:'ls -l。/ subdir1/file1.txt'。否则,你又回到了反复试验的搜索。 –