无法从父目录中找到文件

无法从父目录中找到文件

如果这里不适合回答这个问题,请原谅

我正在运行带有 Ubuntu 14.04 映像的 Amazon Lightsail VPS,并尝试通过 安装各种软件包npm。一个特定的软件包安装失败,因为它无法找到文件

/usr/lib/x86_64-linux-gnu/pkgconfig/cairo.pc

当我检查目录时,该文件肯定存在,并且具有预期的内容和适当的权限

user@hostname:/usr/lib/x86_64-linux-gnu$ stat -c "%a %n" ./pkgconfig/cairo.pc
  644 ./pkgconfig/cairo.pc

user@hostname:/usr/lib/x86_64-linux-gnu$ locate cairo.pc
  /usr/lib/x86_64-linux-gnu/pkgconfig/cairo.pc
  /usr/lib/x86_64-linux-gnu/pkgconfig/pangocairo.pc

user@hostname:/usr/lib/x86_64-linux-gnu$ cat ./pkgconfig/cairo.pc
  prefix=/usr
  exec_prefix=${prefix}
  libdir=${prefix}/lib/x86_64-linux-gnu
  ...
  //etc. - excluded for brevity

但有趣的是,当我尝试通过find它找到文件时,它指出无法从其目录之外找到该文件,即使它在输出中列出(为简洁起见缩短)

user@hostname:/usr/lib/x86_64-linux-gnu/pkgconfig$ find cairo.pc
  cairo.pc

user@hostname:/usr/lib/x86_64-linux-gnu/pkgconfig$ cd ..

user@hostname:/usr/lib/x86_64-linux-gnu$ find ./pkgconfig cairo.pc
  ./pkgconfig
  ./pkgconfig/gio-2.0.pc

  ...
  ./pkgconfig/gmodule-2.0.pc
  ./pkgconfig/cairo-ft.pc
  ./pkgconfig/cairo.pc
  ./pkgconfig/xau.pc
  ./pkgconfig/cairo-svg.pc
  ./pkgconfig/gmodule-export-2.0.pc
  ...

  find: `cairo.pc': No such file or directory

这让我相信,文件系统中的文件存在一些问题或权限阻止找到它(例如坏缓存或类似问题),而不是包/包管理器的错误,但老实说,作为一名 Linux 新手,我不知道从哪里开始

任何想法都将不胜感激

答案1

您以错误的方式运行该命令,例如:

find ./pkgconfig cairo.pc

本来应该:

find ./pkgconfig -name cairo.pc

在您的例子中,您要求find在两个路径./pkgconfigcairo.pc(文件而不是目录)中进行搜索。如果您已完成:

find ./pkgconfig ./another_folder -name cairo.pc

它会cairo.pc在那两个位置找到,但在您的情况下,您只在pkgconfig文件夹中搜索,因此find ./pkgconfig -name cairo.pc使用正确的命令。

请参阅man find如何使用 find 命令以及这里了解更多解释。

相关内容