怎么在Linux电脑上查找文件

如果你不太了解Linux命令,那么在Linux系统里查找文件是比较困难的。只要使用多种不同的终端命令,可以很快地找到文件。Linux命令比其它操作系统的搜索功能更加强大,掌握这些命令就能你完全控制这些文件。

方法 1 的 3:

使用“find”命令

  1. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/4\/48\/690519-1.jpg\/v4-460px-690519-1.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/4\/48\/690519-1.jpg\/v4-728px-690519-1.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 1 根据文件名搜索文件。find命令是最基础和常用的搜索命令。它可以在当前路径和任意子目录中搜索文件。[1]
    find -iname "文件名"
    
    • -iname来代替-name,忽略文件名的大小写。-name命令区分大小写。
  2. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/4\/4b\/690519-2.jpg\/v4-460px-690519-2.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/4\/4b\/690519-2.jpg\/v4-728px-690519-2.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 2 设置搜索条件,从根目录开始搜索。如果想要搜索整个系统,可以添加/来修改命令。这样,find命令会搜索所有路径,从根目录开始搜索文件。
    find / -iname "文件名"
    
    • 用具体的目录路径来代替/,可以搜索特定路径里的文件,如/home/pat
    • 你可以用.来代替/,这样就能在当前路径和子目录下强制搜索文件。
  3. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/9\/9a\/690519-3.jpg\/v4-460px-690519-3.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/9\/9a\/690519-3.jpg\/v4-728px-690519-3.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 3 使用通配符.* 搜索任何匹配搜索条件的文件。 如果你不知道文件全名,或想要查找带有特定扩展名的所有文件,可以使用通配符*
    find /home/pat -iname "*.conf"
    
    • 这样会在“Pat”用户文件夹(所有子目录)中找到所有.conf文件。
    • 你也可以用它来查找所有匹配部分文件名的文件。例如,如果你有很多wikiHow相关的文档,可以输入"*wiki*"来找到它们。
  4. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/3\/35\/690519-4.jpg\/v4-460px-690519-4.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/3\/35\/690519-4.jpg\/v4-728px-690519-4.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 4 让你的搜索结果更方便管理。如果获得很多搜索结果,就很难细查筛选文件。使用|字符,将搜索结果发送到“less”筛选程序。这样你就可以更简单地浏览和筛选搜索结果。
    find /home/pat -iname "*.conf" | less
    
  5. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/4\/46\/690519-5.jpg\/v4-460px-690519-5.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/4\/46\/690519-5.jpg\/v4-728px-690519-5.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 5 找到特定类型的结果。你可以使用修饰符来返回特定类型的结果。你可以使用f搜索常规文件,用d搜索路径,用l搜索符号链接文件,用c搜索字符设备,用b屏蔽设备。
    find / -type f -iname "文件名"
    
  6. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/9\/90\/690519-6.jpg\/v4-460px-690519-6.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/9\/90\/690519-6.jpg\/v4-728px-690519-6.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 6 根据大小过滤搜索结果。如果很多文件的名称相似,但是你知道目标文件的大小,可以使用文件大小进行过滤。
    find / -size +50M -iname "文件名"
    
    • 上述命令会返回大于等于50MB的文件。你可以使用+-来搜索更大或更小的文件。如果没有加+-字符,就会只搜索特定大小的文件。
    • 你可以使用字节(c)、千字节(k)、兆字节(M)、千兆字节(G)或512字节块(b)来进行筛选。记住,这些文件大小命令是区分大小写的。
  7. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/7\/75\/690519-7.jpg\/v4-460px-690519-7.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/7\/75\/690519-7.jpg\/v4-728px-690519-7.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 7 使用布尔操作符来整合搜索过滤。使用-and-or-not操作符来整合不同类型的搜索条件。[2]
    find /travelphotos -type f -size +200k -not -iname "*2015*"
    
    • 这个命令会在“travelphotos”目录里查找大于200KB,文件名里不包含“2015”的所有文件。
  8. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/f\/f3\/690519-8.jpg\/v4-460px-690519-8.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/f\/f3\/690519-8.jpg\/v4-728px-690519-8.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 8 根据用户或权限搜索文件。如果你想要查找特定用户的文件,或是带有特定权限的文件,可以根据此来缩窄搜索条件。
    find / -user pat -iname "文件名"
    find / -group users -iname "文件名"
    find / -perm 777 -iname "文件名"
    
    • 以上命令会搜索特定用户、群组或权限的文件。你可以忽略文件名,返回所有匹配条件的文件。如:find / -perm 777会返回所有带有777权限的文件(无限制条件)。[3]
  9. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/6\/61\/690519-9.jpg\/v4-460px-690519-9.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/6\/61\/690519-9.jpg\/v4-728px-690519-9.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 9 将执行命令整合到搜索文件中。你可以将find命令和其它命令整合到一起,这样在返回搜索结果时,执行命令。用-exec来隔开find命令和第二个命令,然后结尾用{} \;字符。
    find . -type f -perm 777 -exec chmod 755 {} \;
    
    • 这样会在当前路径和所有子目录里搜索带有777权限的文件。找到文件后,chmod命令会将权限更改为755。
方法 2 的 3:

使用“locate”命令

  1. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/c\/c4\/690519-10.jpg\/v4-460px-690519-10.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/c\/c4\/690519-10.jpg\/v4-728px-690519-10.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 1 安装.locate 功能。 由于locate命令能够读取数据库文件的结构,所以,它通常比find命令速度更快。但是,不是所有版本的Linux系统都安装了locate功能,你可能需要输入以下命令来安装它:
    • 输入sudo apt-get update,按下回车键
    • 你可以在“Debian”和乌班图系统里安装它:输入sudo apt-get install mlocate,按下回车键。如果已经安装了locate,那么会看到mlocate is already the newest version的信息。
    • 在“Arch Linux”系统里,使用“pacman”安装包管理器:pacman -Syu mlocate
    • 在“Gentoo”系统里,使用“emerge”:emerge mlocate
  2. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/a\/a9\/690519-11.jpg\/v4-460px-690519-11.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/a\/a9\/690519-11.jpg\/v4-728px-690519-11.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 2 更新.locate 数据库。 除非建立并更新数据库,否则locate命令无法找到任何内容。一般来说,系统每天会自动更新数据库,但是你也可以手动更新它。如果你想要立刻使用locate命令,那就需要手动更新。[4]
    • 输入sudo updatedb,按下回车键
  3. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/0\/04\/690519-12.jpg\/v4-460px-690519-12.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/0\/04\/690519-12.jpg\/v4-728px-690519-12.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 3 使用.locate 命令进行简单的搜索。 locate命令的运行速度很快,但是没有find命令那么多选项。你可以用它来执行简单的文件搜索,基本的搜索方式与find命令相同。
    locate -i "*.jpg"
    
    • 这个命令会搜索整个系统,找到带.jpg后缀的文件。通配符*find命令里的通配符功能一致。
    • find命令类似,-i会忽略搜索条件里的大小写。
  4. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/3\/3c\/690519-13.jpg\/v4-460px-690519-13.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/3\/3c\/690519-13.jpg\/v4-728px-690519-13.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 4 限制搜索条件。如果返回过多搜索结果,处理不过来,你可以使用-n选项来限制搜索。在选项里输入数字,就会限制出现的搜索结果数量。
    locate -n 20 -i "*.jpg"
    
    • 只显示匹配搜索条件的前20个结果。
    • 你也可以使用|来将结果发送到less程序。
方法 3 的 3:

搜索文件里的文本

  1. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/a\/a0\/690519-14.jpg\/v4-460px-690519-14.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/a\/a0\/690519-14.jpg\/v4-728px-690519-14.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 1 使用.grep 命令搜索文件里的文本串。 如果你想要在文件里找到特定的短语或字符串,可以使用grep命令。基本的grep命令格式如下:
    grep -r -i "搜索词" /路径
    
    • -r将搜索设置为“递归”,这样它会在当前路径和所有子目录下搜索特定字符串。
    • -i说明搜索条件不区分大小写。如果想要强制区分大小写,请删除 -i
  2. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/7\/71\/690519-15.jpg\/v4-460px-690519-15.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/7\/71\/690519-15.jpg\/v4-728px-690519-15.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 2 去掉多余的文本。当你执行上面的grep搜索时,你会看到匹配搜索的文本被高亮标记出来。你可以使用下面的命令隐藏匹配的文本,直显示文件名和路径:
    grep -r -i "搜索词" /路径 | cut -d: -f1
    
  3. {"smallUrl":"https:\/\/www.zenmeban.com\/images_en\/thumb\/0\/02\/690519-16.jpg\/v4-460px-690519-16.jpg","bigUrl":"https:\/\/www.zenmeban.com\/images\/thumb\/0\/02\/690519-16.jpg\/v4-728px-690519-16.jpg","smallWidth":460,"smallHeight":345,"bigWidth":728,"bigHeight":546,"licensing":"<div class=\"mw-parser-output\"><\/div>"} 3 隐藏错误信息。如果尝试进入没有正确权限的文件夹,或进入空文件夹后,用grep命令返回错误信息。你可以将错误信息发送到 /dev/null,在输出结果里隐藏它们。[5]
    grep -r -i "搜索词" /路径 2>/dev/null
    

<<:  怎么在美国获得工作许可证

>>:  怎么在安卓系统中把程序从手机内存储移到SD卡存储上

怎么定义爱

“就化学和生物层面来说,究竟该怎样解释初恋这个重要的生物现象呢?” —阿尔伯特• 爱因斯坦 爱是很难...

怎么起床

我们都想要轻轻松松的起床。但是实际上,大多数人不能一次就清醒过来,起床的过程很痛苦。这里有一些方法可...

怎么让女生喜欢你

每个女人都是不同的;如果她们都一样,你就不会特别对某一个感兴趣,不是吗?有很多不同的方法来吸引女人,...

怎么清除树桩

如果你最近砍掉了庭院中的一棵树,有几种方法可以把难看的树桩移走。你可以动手挖出树桩、把它切割、烧成灰...

怎么计算圆面积

需要计算圆面积?这是很常见的几何问题,要找出答案相当简单。大多数时候,你都能借助简单的数学公式A=π...