我想找到一个文件(具有部分已知的文件名)在文件系统中的位置。我想知道如何从命令行执行此操作,而不是使用 GUI 实用程序。
在 Windows 中,我会运行以下命令:
cd /d C:\
dir *filename* /s
Run Code Online (Sandbox Code Playgroud)
Linux 等价物是什么?
假设我有一个名为的文件,filename123.txt并且它是单个文件,我可以locate使用命令locate filename123. 它只返回这个文件。
现在我想用vi/打开它vim。但我不想去那个位置并键入vi命令后跟文件名。在这里,我希望将 的结果locate filename123附加到 vi 命令。我怎么能这样做?我已经尝试过:
locate filename123 | vi
Run Code Online (Sandbox Code Playgroud)
但这不起作用。这个错误出现在终端中:
santosh@santosh:~$ locate filename123 | vi
Vim: Warning: Input is not from a terminal
Vim: Error reading input, exiting...
Vim: Finished.
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 locate 命令在我的主文件夹中查找文件,但是每当我尝试运行它时,我都没有得到任何结果:
locate -i -l 4 --regexp '^\/home\/jack\/[A-Za-z0-9\/\ ]*(My.)*$'
Run Code Online (Sandbox Code Playgroud)
我也试过 ^\/home\/jack\/^(?!\.)[A-Za-z0-9\/\ ]*(My.)*$但也没有返回任何结果。
我正在寻找的文件只是为了测试它 /home/jack/Music/Foals/My Number.flac
我想从我的搜索中排除隐藏文件的结果。
我经常在 CentOs 上使用“locate”命令来查找文件。
这个命令在 Debian 上的替代方法是什么?
我想排除 NTFS 安装上的某些 Windows 文件夹被locate. 我熟悉的PRUNEPATHS语法/etc/updatedb.conf。它是一个以空格分隔的目录名称列表。
我的问题是我想排除包含空格本身的目录(例如Program Files (x86))。
我试过反斜杠转义,但这没有用。
我想知道如何使用该命令locate来搜索不区分大小写的单词?如修改locate normal以搜索具有“正常”和“正常”的结果。
我已经读过要在CYGWIN上运行locate命令首先我需要运行以下命令。
updatedb --localpaths=c:/
Run Code Online (Sandbox Code Playgroud)
当我在 CYGWIN 上运行这个命令时,这个命令究竟做了什么,它花费了太多时间。
我将我的数字音乐和数字照片保存在 Windows 分区的目录中,安装在/media/win_c我的双引导盒上。我想在locate数据库中包含这些目录——但只包含那些目录。但是,据我所知,updatedb.conf仅提供排除目录的选项,而不是添加目录。当然,我可以删除/mediafrom PRUNEPATHS,然后添加一大堆子目录 ( /media/win_c/Drivers, /media/win_c/ProgramData...) 但这似乎是一种非常笨拙的方法 - 当然有更优雅的解决方案吗?
(我尝试只从索引的 linux 分区创建到 Windows 目录的软链接,但这似乎没有帮助。)
locate gtags会找到所有名为gtags.
如果我只需要可执行文件怎么办,有什么办法可以做到这一点?