网站建设是软件开发吗,提升网站速度,站长seo工具,wordpress 微信插件阿丹#xff1a; 作为一个java程序员进行实战开发不接触linux操作系统基本上是不可能的#xff0c;所以这个专题就出现了#xff0c;本文章重点解决大家关于文件管理以及文件查找查看的疑惑。我将采用语法基础用法并在下面进行高级语法的总结使用#xff0c;方便大家学习和…阿丹 作为一个java程序员进行实战开发不接触linux操作系统基本上是不可能的所以这个专题就出现了本文章重点解决大家关于文件管理以及文件查找查看的疑惑。我将采用语法基础用法并在下面进行高级语法的总结使用方便大家学习和使用。
一、操作文件的基本命令 创建新文件/重命名文件 touch 文件名 # 创建新文件 (若不存在则创建)mv 老文件名 新文件名 # 重命名文件 touch test.txt # 创建名为test.txt的新文本文件
mv oldfile newfile # 将oldfile重命名为newfile 删除文件 rm 文件名 # 删除文件rm -rf 目录名 # 删除非空目录及其所有内容 rm test.txt # 删除名为test.txt的文件
rm -rf testdir # 删除名为testdir的非空目录及其所有内容 查看文件内容 cat 文件名 # 查看纯文本文档内容less 文件名 # 分页查看文档内容并支持上下滚动 cat test.txt # 查看名为test.txt的文本文件内容
less test.txt # 分页查看名为test.txt的文本文件内容 复制文件/移动文件 cp 文件名 目标位置 # 复制文件cp -r 目录名 目标位置 # 复制整个目录mv 文件名 目标位置 # 移动文件 cp test.txt /home/user/Desktop/ # 将名为test.txt的文件复制到桌面
cp -r testdir /home/user/Documents/ # 将名为testdir的整个目录复制到Documents文件夹
mv test.txt /home/user/Documents/test.txt # 将名为test.txt的文件移动到Documents文件夹中 重定向输出 command file # 将command的结果输出到file中追加command file # 将command的结果输出到file中覆盖 ls -l files.txt # 将ls -l命令的结果输出到files.txt文件中追加
ls -l files.txt # 将ls -l命令的结果输出到files.txt文件中覆盖 通配符 ? # 匹配任意单个字符# 匹配任意长度的任意字符序列[list] # 匹配括号内的任何一个字符[range] # 匹配括号内指定范围内的任何一个字符{list} # 匹配括号内的任何一个字符串 ls *.txt # 显示当前目录下所有的.txt结尾的文件
ls [0-9].txt # 显示当前目录下以数字开头后缀为.txt的文件
二、查看文件详细信息 ls 命令 ls # 显示当前目录下的所有文件列表ls -l # 长格式显示详细文件属性ls -a # 显示包括隐藏文件在内的所有文件 ls # 显示当前目录下的所有文件列表
ls -l # 长格式显示详细文件属性
ls -a # 显示包括隐藏文件在内的所有文件 stat 命令 stat 文件名 # 显示文件详细信息如权限、大小、所有者、修改时间等 stat test.txt # 显示名为test.txt的文件详细信息
三、文件查找 find 命令
find 起始位置 条件 操作 # 在起始位置根据条件进行文件查找并执行相应操作
find . -type f # 查找当前目录及其子目录下的所有普通文件
find / -size 1M # 查找根目录下大于1MB的文件
find . -name test* # 查找以test开头的文件
find /home/user/ -type f # 查找/home/user/目录及其子目录下的所有普通文件
find / -size 1M # 查找根目录下大于1MB的文件
find . -name test* # 查找以test开头的文件
具体参数
-name pattern查找与指定名称模式匹配的文件。-type c查找具有指定类型的文件。其中c可能是f普通文件、d目录、b块设备、c字符设备或p管道文件。-perm mode查找具有指定权限的文件。-mtime n查找在n天前被更改过的文件。这里的n可以是一个正数表示找到最近n天内更改过的文件也可以是一个负数表示找到至少n天之前更改过的文件。例如-mtime 7会查找过去一周内更改过的文件而-mtime -7会查找七天前或更早更改过的文件。-size n[cwb]查找文件大小符合指定条件的文件。这里的n可以是整数值后面可以跟c字节、w双字节字或b512字节块作为单位。
下面的命令会查找当前目录及其所有子目录中在过去一天内被更改过的文件
find . -mtime 1 另外find命令还可以与其他命令结合使用比如与ls命令配合以查看查找结果。如下所示这个命令将列出当前目录及其子目录中所有以.txt结尾的文件
find . -name *.txt locate 命令
locate 文件名 # 根据已编译好的数据库查找文件 locate test.txt # 查找名为test.txt的文件 具体参数 locate命令是用来查找文件或目录路径的工具其优点是速度比find命令要快得多因为它使用的是预先建立好的文件索引数据库。以下是一些常用的locate命令参数
-i忽略大小写。-q静默模式在输出时不打印任何错误消息或警告。-n限制输出的数量。-b在每个输出行前面加上字节数偏移量。-e避免匹配表达式的开始和结束部分出现的所有元字符。
下面的命令将列出所有以.txt结尾的文件
locate *.txt 如果你想同时查找多个文件或文件夹可以在参数中添加多个名字如下所示
locate test.txt images/ 如果你想限制输出的数量可以使用-n选项
locate -n 5 .txt # 输出前5个匹配项 要排除特定文件类型或目录可以使用!符号
locate ! .* .txt # 查找不包含.的.txt文件
如果要在查找结果中过滤掉一些特定目录可以使用-not选项
locate -not /var/log/ .log 需要注意的是locate命令默认使用的数据库可能不是最新的可以通过运行updatedb命令来更新数据库。不过由于更新数据库需要一定的时间所以这通常在后台任务计划中定期完成。如果你想立即更新数据库可以使用以下命令
sudo updatedb
这样就可以确保locate命令能够找到最新添加或删除的文件了。
where is 命令
whereis 文件名 # 查找可执行文件、源码文件和帮助文件 whereis ls # 查找ls的可执行文件、源码文件和帮助文件 详细参数
whereis命令主要用于查找特定文件在系统的具体位置它可以查找出指定命令的二进制文件、源代码文件和man页面文件的具体位置。以下是whereis命令的一些常用参数
-b仅显示二进制文件的位置。-s仅显示源文件的位置。-m仅显示man页面的位置。-u显示未安装的源代码包的位置。-B指定查找二进制文件的位置。-M指定查找man页面的位置。
下面的命令会显示出ls命令的二进制文件、源代码文件和man页面文件的位置
whereis ls 下面的命令会只显示ls命令的二进制文件位置
whereis -b ls 下面是仅查找ls命令的man页面的位置
whereis -m ls 如果你想要自定义查找位置可以使用-B或-M选项。例如
whereis -B /usr/local/bin ls 这段代码将只会显示/usr/local/bin目录中的ls命令的二进制文件位置。同样地你也可以通过类似的方式指定man页面的查找位置。
注意你可以将ls替换为你想要寻找的任何文件名或命令
grep 命令
grep string filename # 在filename文件中查找包含指定字符串的行
grep hello test.txt # 在test.txt文件中查找包含hello的行 追加补充说明-组合使用进阶用法
find, locate, whereis 和 grep 是一些用于在 Linux 中搜索文件的强大工具。它们可以单独使用但通常也会结合在一起使用以提高效率。以下是一些示例来演示如何将它们组合起来
使用 locate 来快速搜索文件然后使用 find 来深入查找文件的内容 # 使用 locate 找到文件
locate filename.txt# 使用 find 进一步筛选文件
find /path/to/folder -name filename.txt 使用 whereis 来查找程序及其相关文件 whereis ls
# 上面命令会返回 ls 的 bin, src, manpage 等信息 使用 find 来查找匹配特定模式的文件并使用 grep 来进一步过滤结果 # 查找所有 txt 文件中的关键字
find . -type f -name *.txt | xargs grep keyword 使用 grep 来查找多个文件中的匹配项 grep -R pattern * 使用 locate 和 xargs 来批量操作多个文件 locate *.txt | xargs chmod 755 使用 find 和 exec 来批量操作文件 find . -type f -name *.txt -exec echo {} \; 使用 grep 和 whereis 来快速查找程序源代码中的函数
whereis grep | awk {print $2} | xargs grep -H function_name
到这里本文章就结束了希望大家不要只是看需要自己动手尝试写一写