操作系统:Lubuntu。
有人能帮忙吗,终端 (cmd) 的命令是什么,用于搜索所有外部硬盘、其所有文件夹和子文件夹。我想搜索名称中包含以下内容的所有照片:“202010”
如果某些照片的名称中可能包含“202010”前面的某些字符,而其他照片的名称中可能包含“202010”后面的某些字符,或者两种方式都包含“202010”前面和后面的字符,那么是否有两条/三个不同的命令?
是否有任何更新命令,从终端更新从另一台机器复制到外部硬盘上的最新照片,然后从我实际连接外部硬盘的机器搜索照片?或者这些照片无论如何都会被新机器编入索引?
答案1
执行此操作的强力方法是使用 find 标准命令。 https://en.wikipedia.org/wiki/Find_(Unix)
find <base directory> -name '202010*.jpg'
文件模式周围的引号确保它不会与当前目录中的文件匹配,而是作为要查找的模式传输。模式是你表达自己想要的方式
- 确切地
202010.jpg
:-name '202010.jpg'
- 以以下内容开头的任何内容
202010
:-name '202010*.jpg'
- 任何含有以下内容的内容
202010
:-name '*202010*.jpg'
这可以让你开始,但大量使用 findfind / <whatever query>
是一种不好的做法,而且很慢,你可以做得更好。在大多数情况下,Linux 附带一个名为“locate”或“mlocate”的系统(Ubuntu,请参阅https://www.howtoforge.com/linux-locate-command/)。
通过使用另一个定期(每天一次)扫描磁盘的过程,locate 会建立一个数据库,使得对类似“locate '202010*.jpg”的搜索非常高效(只需几秒而不是几分钟)。
答案2
对我来说,最简单的搜索方式是通过控制台,对我来说最简单的方法就是这些。
$ find /path -name '*202010*'
或者
$ find /path | grep 202010