有时候要找几年前存在电脑里的文件,不但位置忘记了,就连文件名都忘记的差不多了,怎么办?可以使用linux或者cygwin下的find命令,只要对文件名还有一些印象,就可以。
1. 使用正则表达式。正则表达式实在是字符串匹配最好用的东东了,无论是用grep和sed在文件中查找符合条件的行,还是使用find来查找符合条件的文件名,都要用到正则表达式,灵活!怎么使用呢,很简单,使用选项-regex,即可,默认的是正则表达式的方法是posix的,如果不熟悉,可以使用选项-regextype来进行修改,具体参数可以通过man find来查看。
例子:在d盘查找多年前写的一个培训用的ppt,文件名已经记不得了,只知道是个ppt或者pptx。使用如下命令:
首先cd到d盘: cd /cygdrive/d
然后搜索:find -regex '.*pptx?'
会比较慢,如果d盘下文件很多。
2. 有时候,写程序需要,就想把当前文件夹的符合条件的文件名找出来,而不用去管其子文件夹的内容,怎么办?使用-maxdepth来限制最大查找深度为1,即可,如果设置为2,则表示查找当前文件夹和第一层子文件夹。
例子,在d:\tmp中查找txt文件,不在d:\tmp\test中去查找
find -maxdepth 1 -regex '.*\.txt$'