我们在使用Linux系统时常常忘记我们的文件在什么路径下,那在Linux中有没有文件查找工具呢?今天就给大家介绍一下Linux系统下的文件查询工具–find
废话少说,咱们直接开始!
在命令行中键入find
以按名称或扩展名跟踪特定文件。如果要在 /home/username/
目录和所有子目录中查找 *.err
文件,请尝试以下操作:
find /home/username/ -name "*.err"
find
命令表达式如下所示:
find command options starting/path expression
options
属性:控制查找过程的行为和优化方法。
start/path
属性:定义了 Linux 中find
命令开始过滤过程的顶级目录。表达式属性控制搜索目录树以创建输出的评估。
让我们分解一个 Linux 查找命令,我们不希望 Linux 按名称查找文件:
find -O3 -L /var/www/ -name "*.html"
它启用顶级优化 (-O3
) 并允许find
遵循符号链接 (-L
)。Linux 中的find
命令在 /var/www/
下的整个目录层次结构中搜索以 .html
结尾的文件。
如果您需要知道如何在 Linux 中查找名为 thisfile.txt
的文件,它将在当前目录和子目录中查找。
find . -name thisfile.txt
在 /home
及其下面的目录中查找所有 .jpg
文件。
find /home -name *.jpg
在当前目录中查找一个空文件。
find . -type f -empty
查找在前 6 天内由名为randomperson
的用户更改的所有 .db
文件(忽略文本大小写)。
find /home -user randomperson-mtime 6 -iname ".db"
find
默认配置为忽略符号链接(快捷方式文件)。如果您希望find命令跟随并显示符号链接,只需将 -L
选项添加到命令中,就像我们在本示例中所做的那样。
find可以帮助 Linux 按名称查找文件。Linux find
命令增强了其过滤方法,从而优化了性能。用户可以通过选择三个优化阶段-O1
、-O2
和-O3
在Linux中查找文件。-O1
是标准设置,它会导致find在运行任何其他测试之前根据文件名进行过滤。
-O2
按文件名称和类型进行过滤,然后再使用要求更高的过滤器在 Linux 中查找文件。级别 -O3
根据测试的相对费用和成功的可能性对所有测试重新排序。
-O1
:(默认)首先根据文件名过滤
-O2
: 首先是文件名,然后是文件类型
-O3
:允许查找根据资源的有效使用和成功的可能性自动重新排序搜索
-maxdepth X
: 搜索此目录以及所有子目录到 X 级别
-iname
:忽略文本大小写时搜索。
-not
: 只产生与测试用例不匹配的结果
-type f
:查找文件
-type d
:寻找目录
Linux find
命令包含根据文件上次修改时间过滤目录层次结构的功能:
find / -name "*jpg" -mtime 5
find /home/randomuser/ -name "*jpg" -mtime 4
最初的 Linux find
命令会拉取整个系统中以字符jpg
结尾且在前 5 天内已被修改的文件列表。下一个过滤randomuser
的主目录以查找名称以字符conf
结尾且在前 4 天内已被修改的文件。
Linux 中的find
命令很棒,但它只能根据文件名和元数据过滤目录树。要根据文件包含的内容搜索文件,您需要像 grep
这样的工具。举个例子:
find . -type f -exec grep "forinstance" '{}' \; -print
这会遍历当前目录树 (.
) 中作为文件的每个对象 (-type f
),然后为每个匹配的文件运行 grep “forinstance”
,然后将它们打印在屏幕上 (-print
)。花括号 ({}
) 是 Linux find
命令匹配的那些结果的占位符。{}
放在单引号 ('
) 中,这样 grep
就不会得到畸形的文件名。-exec
命令以分号 (;
) 结束,它还需要转义 (\;
) 以便它不会最终被 shell
解释。
在实现-exec
之前,xargs
将用于创建相同类型的输出:
find . -type f -print | xargs grep "forinstance"
-exec
选项针对与查找表达式匹配的每个对象运行命令,让我们看看它的外观:
find . -name "rc.conf" -exec chmod o+r '{}' \;
这会过滤当前目录树 (.
) 中名为 rc.conf
的文件的所有对象,并运行 chmod o+r
命令来更改find
返回结果的文件权限。
Linux 的根目录是执行-exec
运行的命令的位置。使用-execdir
在匹配所在的目录中执行您想要的命令,因为在某些情况下这可能更安全并提高性能。
-exec
或-execdir
选项将继续自行运行,但如果您想在它们执行任何操作之前看到提示,请将-exec
-ok
或-execdir
换成-okdir
。
假设您有一个网站已准备好在您的笔记本电脑/台式机上运行,并且您想使用文件管理器将其上传到Linux 服务器上的Plesk
:
在您的计算机上,您需要获取包含所有网站文件的文件夹,并将其添加到一种常用格式(ZIP
、RAR
、TAR
、TGZ
或 TAR.GZ
)的压缩存档中。
在 Plesk
中,转到Files
,单击 httpdocs
文件夹将其打开,单击Upload
,选择存档文件,然后单击Open
。
上传后,点击旁边的复选框,然后点击提取文件。
默认情况下,文件管理器允许您编辑网站页面。为此,您可以使用:
HTML 编辑器或“所见即所得”风格的编辑器,这是一个不错的选择,因为它为您添加了 HTML 标记。 如果您对 HTML 不是那么有信心,那么这可能是一个有用的选择。
代码编辑器。当您使用此文件打开 HTML 文件时,您将看到突出显示 HTML 语法的文本。如果您对自己添加 HTML 标签感到满意,那么代码编辑器就适合您。
文本编辑器。HTML 文件用这个作为普通文本打开。
您的 Plesk
管理员可能已经安装了 Rich Editor
扩展,在这种情况下,您可以使用它来编辑 HTML
文件。富编辑器以所见即所得的方式工作,就像代码编辑器一样,尽管它更好地配备了诸如拼写检查器之类的功能。
以下是使用文件管理器编辑文件的方法:
将光标放在文件上,与之对应的行将突出显示。
通过单击打开文件的上下文菜单。
单击Edit in ... Editor
(这取决于您选择的编辑器)。
文件管理器的默认方法是非递归地更改权限,因此子文件和目录不受其所属上级目录更改权限的影响。使用 Plesk for Linux
,您可以让文件管理器以递归方式修改权限,前提是您的 Plesk
管理员设置了权限递归扩展并且您了解文件权限的八进制表示法。
要启用访问权限的递归编辑:
将光标放在目录上并等待突出显示。
单击以打开其上下文菜单,然后再次单击Set Permissions Recursive
。
现在您可以编辑它们。“文件夹权限”是指更高级别的目录及其任何相关的子目录。在这种情况下,“文件权限”适用于子文件。
完成权限修改后,单击OK
。