如何在 Linux 中从终端搜索外部硬盘上的照片(按名称)

如何在 Linux 中从终端搜索外部硬盘上的照片(按名称)

操作系统: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

相关内容