Linux实战一天一个小指令--《文件管理/文件查找》
阿丹:
作为一个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(双字节字)或b(512字节块)作为单位。
下面的命令会查找当前目录及其所有子目录中在过去一天内被更改过的文件:
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'
到这里本文章就结束了,希望大家不要只是看,需要自己动手尝试写一写
相关文章:
Linux实战一天一个小指令--《文件管理/文件查找》
阿丹: 作为一个java程序员进行实战开发不接触linux操作系统基本上是不可能的,所以这个专题就出现了,本文章重点解决大家关于文件管理以及文件查找查看的疑惑。我将采用语法基础用法并在下面进行高级语法的总结使用,方便大家学习和…...
CocosCreator3.8神秘面纱 CocosCreator 项目结构说明及编辑器的简单使用
我们通过Dashboard 创建一个2d项目,来演示CocosCreator 的项目结构。 等待创建完成后,会得到以下项目工程: 一、assets文件夹 assets文件夹:为资源目录,用来存储所有的本地资源,如各种图片,脚本…...
JJJ:python学习笔记
p4 没有编译的过程 源码和输入得到输出 静态语言:编译型 脚本语言:解释型 p5 又叫做胶水语言 p7 p8 p10...
SpringSecurity6从入门到上天系列第七篇:讲明白SpringBoot的自动装配完善上篇文章中的结论
文章目录 一:SpringBoot的自动装配 1:从run方法到入口类内容被注册到注解解读器中。 2:解析入口类注解到加载Bean实例 大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接&am…...
ClickHouse 原理解析之基础知识总结
ClickHouse 基础知识整理 参考ClickHouse 官方文档:https://clickhouse.com/docs/en/intro 一:行式存储和列式存储 1.行式存储和列式存储的区别 1.1 概念说明 行式存储:指存储结构化数据时,在底层的存储介质上,数据是以行的方式来组织的,即存储完一条记录的所有字段,再…...
最小花费——最短路
在 n 个人中,某些人的银行账号之间可以互相转账。这些人之间转账的手续费各不相同。给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问 A 最少需要多少钱使得转账后 B 收到 100 元。 输入格式 第一行输入两个正整数 n,m,分别表…...
Spark DataFrame join后移除重复的列
在Spark,两个DataFrame做join操作后,会出现重复的列。例如: Dataset<Row> moviesWithRating moviesDF.join(averageRatingMoviesDF,moviesDF.col("movieId").equalTo(averageRatingMoviesDF.col("movieId")));其s…...
NextJS工程部署到阿里云linux Ecs
nextjs项目有多种部署方式,本文介绍最简单的一种方式,将源码上传到云服务器,编译后使用pm2后台运行nextjs工程。 检查node、npm是否安装 查看npm版本,如果版本较低先升级npm版本 npm -v卸载 yum remove nodejs npm -y安装新版…...
汽车以太网IOP测试新利器
IOP测试目的 汽车以太网物理层IOP(Interoperability )测试,即测试被测对象以太网物理层之间的互操作性。用于验证车载以太网PHY能否在有限时间内建立稳定的链路;此外,还用于验证车载以太网PHY可靠性相关的诊断特性&am…...
高防IP是什么?如何隐藏源站IP?如何进行防护?
高防IP是针对互联网服务器遭受大流量的DDoS攻击后导致服务不可用的情况下,推出的付费增值服务。用户在数据不转移的情况下,就可以通过配置高防IP , 将攻击流量引流到高防|P,确保源站的稳定可靠。高防IP采用的技术手段包括DDoS防护、WAF ( Web应用程序防火墙)等,它能够有效抵御来…...
ElasticSearch---查询es集群状态、分片、索引
查看es集群状态: curl -XGET http://localhost:9200/_cat/health?v如果?后面加上pretty,能让返回的json格式化。 加上?v的返回结果,如下: epoch timestamp cluster status node.total node.data shards pri rel…...
Angular 使用教程——基本语法和双向数据绑定
Angular 是一个应用设计框架与开发平台,旨在创建高效而精致的单页面应用 Angular 是一个基于 TypeScript 构建的开发平台。它包括:一个基于组件的框架,用于构建可伸缩的 Web 应用,一组完美集成的库,涵盖各种功能&…...
【ASP.NET】Hello World
文章目录 1. 几个概念2. 搭建开发环境2.1 .NET SDK2.2 IDE & Editor 3 First Project3.1 步骤3.2 模板3.3 项目结构3.4 请求的处理流程 Reference Link 1. 几个概念 .NET 是一个平台,包括 .NET Framework、.NET Core、ASP.NET、C#等,可以构建桌面、W…...
AI创作系统ChatGPT网站源码+支持最新GPT-Turbo模型+支持DALL-E3文生图/AI绘画源码
一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…...
C#_查找图片(按键精灵找图)
一、class internal class Picture{/// <summary>/// 查找图片,不能镂空/// </summary>/// <param name"subPic"></param>/// <param name"searchRect">如果为empty,则默认查找整个图像</param>…...
C#中.NET Framework4.8 控制台应用通过EF访问新建数据库
目录 一、 操作步骤 二、编写EF模型和数据库上下文 三、 移植(Migrations)数据库 四、编写应用程序并运行 前文已经说过.NET Framework4.8 控制台应用通过EF访问已经建立的数据库,这里说的已经建立的数据库指的是已经建立的SQLServer那样…...
无防御香港服务器如何防CC
虽然相对于DDos攻击,CC攻击的防护危害性相对没有那么大,但是像香港地区普遍对内地的网络比较小的话,CC攻击还是 蛮让人头痛的,实际上对CC的防护尤其是一些小体量的网站,租用高防服务器是划不来的,如果服务器…...
MyBatis的插件能在哪些地方进行拦截?
程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》&…...
【BUG库】 记录自己学习工作中遇到的程序BUG
BUG库 CGoalgorithm环境相关vscode -- 保存 在这篇博客中 我会记录自己在学习和工作中遇到的一系列bug C Go algorithm 环境相关 vscode – 保存 使用vscode时未保存代码就使用终端运行 vscode和终端并不是实时同步的 需要我们自己手动使用ctrl s同步 解决方法 自己手动…...
卡尔曼家族从零解剖-(07) 高斯分布积分为1,高斯分布线性变换依旧为高斯分布,两高斯函数乘积仍为高斯。
讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解的 卡尔曼家族从零解剖 链接 :卡尔曼家族从零解剖-(00)目录最新无死角讲解:https://blog.csdn.net/weixin_43013761/article/details/133846882 文末正下方中心提供了本人 联系…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...
SpringAI实战:ChatModel智能对话全解
一、引言:Spring AI 与 Chat Model 的核心价值 🚀 在 Java 生态中集成大模型能力,Spring AI 提供了高效的解决方案 🤖。其中 Chat Model 作为核心交互组件,通过标准化接口简化了与大语言模型(LLM࿰…...
