对于某些应用程序,使用“which”命令可以很容易地找到应用程序的安装位置。但是,某些应用程序(例如 Tomcat)有点难以定位。
我要求可以应用于任何 apt-get install 的特定方法来定位二进制文件、库和支持文件的安装位置。
这个问题的原因是我安装了 Tomcat7,我似乎可以找到它,并且我有一个要执行的自定义列表。
我希望locate在 ubuntu 12.04 中使用该命令(用于查找文件。我相信有这样的命令,但在 ubuntu 12.04 中看不到它是任何包的一部分吗?
背景:我正在尝试构建我的程序,但首先我需要在 netbeans 中设置库。我的项目正在使用 GLU,因此我安装了 libglu-dev。我没有注意到图书馆所在的位置,现在我找不到它们了。
几天前我已经切换到 Linux,到目前为止我对它非常满意,但是我无法用谷歌搜索这个并变得沮丧..有没有办法找出包文件的安装位置而不运行重新安装?我的意思是,如果我在一段时间前获得了库 xxx 并安装了它,是否有一些命令 xxx可以打印此信息?
我已经尝试过 locate、find 和 whereis 命令,但要么我遗漏了某些东西,要么我无法正确执行..对于 libglu,locate 返回:
/usr/share/bug/libglu1-mesa
/usr/share/bug/libglu1-mesa/control
/usr/share/bug/libglu1-mesa/script
/usr/share/doc/libglu1-mesa
/usr/share/doc/libglu1-mesa/changelog.Debian.gz
/usr/share/doc/libglu1-mesa/copyright
/usr/share/lintian/overrides/libglu1-mesa
/var/lib/dpkg/info/libglu1-mesa:i386.list
/var/lib/dpkg/info/libglu1-mesa:i386.md5sums
/var/lib/dpkg/info/libglu1-mesa:i386.postinst
/var/lib/dpkg/info/libglu1-mesa:i386.postrm
/var/lib/dpkg/info/libglu1-mesa:i386.shlibs
Run Code Online (Sandbox Code Playgroud)
其他两个命令找不到任何东西。现在 locate 完成了它的工作,但我确定这些路径都不是库实际所在的位置(至少我到目前为止链接的所有内容都在 /usr/lib 或 usr/local/lib 中)。
libglu 仅作为示例引入,我正在寻找此问题的通用解决方案。
假设我有一个名为 _file 的目录,并包含两个子目录,如 _1 和 _2,并且在每个子目录上都有一些文本文件。我想在这些文本文件之一中搜索像 foo 这样的词。我怎么能做到这一点?我想知道整个目录中哪些文本文件包含那个词?
有命令find和locate来搜索磁盘上的文件。
我知道find递归处理所有需要的子目录来搜索文件,因此速度很慢但是是最新的,而locate使用一个不时更新的数据库(确切的时间?)来快速显示可能已经过时的结果。
还有其他区别吗?在哪种情况下,人们会更喜欢一种还是另一种?locate数据库通常什么时候更新?
重新启动后,我的外部硬盘驱动器中的文件不再编入索引。我必须重新安装然后运行
# updatedb
Run Code Online (Sandbox Code Playgroud)
每次重启后。问题是我的外置硬盘需要几分钟的时间来更新。有什么办法可以在重新启动后保留我的外部设备的索引,以便 locate 命令可以搜索我的外部设备?
编辑:每个请求这里是我的规格:
$ cat /etc/updatedb.conf
PRUNE_BIND_MOUNTS="yes"
# PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media"
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf fuse.glusterfs fuse.sshfs ecryptfs fusesmb devtmpfs"
# mount
/dev/sda5 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none …Run Code Online (Sandbox Code Playgroud) 操作系统:Ubuntu 19.10
当我跑的时候locate plymouth,我得到了
dkb@dkb-uee:~$ locate plymouth
Command 'locate' not found, but can be installed with:
sudo apt install mlocate
dkb@dkb-uee:~$
Run Code Online (Sandbox Code Playgroud)
所以我安装了mlocate,现在locate可以工作了。
据我所知,自 Ubuntu 11.04 以来,locate一直存在。
为什么它在 Ubuntu 19.10 中被排除在外?
我想在我的 Ubuntu 服务器上使用mlocate,但只能索引某些目录(例如/home和/data,但不是 下的所有内容/)。但是,mlocate 的标准配置则相反;您指定要删除的路径(使用PRUNE_PATHS)。
有没有什么简单的方法可以实现这一点,或者任何类似的实用程序可以满足我的要求?(注意:它应该维护一个像 那样的索引mlocate,所以find是不可接受的,例如)谢谢。
我想使用“locate”命令在我的系统中定位一个目录。我知道有一个名为“bench-repo”的目录。当我给出以下命令时,它显示以下错误:
locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
Run Code Online (Sandbox Code Playgroud)
为什么会这样?我如何找到目录?