【linux】shell(36)-文件操作
1. 文件创建
1.1 使用 touch 命令创建空文件
touch filename
- 创建一个名为
filename的空文件。 - 如果文件已存在,
touch会更新该文件的时间戳。
示例:
touch file1.txt
1.2 使用重定向符创建文件
> filename
- 使用
>符号创建一个空文件。 - 如果文件已存在,它将被清空。
示例:
> newfile.txt
1.3 使用 echo 命令写入内容
echo "This is a test" > filename
- 将字符串写入文件(覆盖文件内容)。
示例:
echo "Hello World" > file1.txt
1.4 使用 cat 命令写入内容
cat > filename
- 允许用户从标准输入(键盘)输入内容,并保存到文件。
示例:
cat > file2.txt
输入内容后,按 Ctrl+D 保存并退出。
2. 文件查看
2.1 查看文件内容
cat filename:查看整个文件内容。more filename:逐屏显示文件内容。less filename:交互式查看文件内容,可以上下翻页。head filename:显示文件前几行内容,默认显示前10行。tail filename:显示文件末尾几行内容,默认显示最后10行。
示例:
cat file1.txt
more file1.txt
less file1.txt
head -5 file1.txt # 查看前5行
tail -3 file1.txt # 查看最后3行
3. 文件复制、移动和重命名
3.1 复制文件
cp source_file destination_file
- 复制文件
source_file到destination_file。
示例:
cp file1.txt backup.txt
3.2 移动或重命名文件
mv oldname newname
- 重命名:如果目标路径是当前目录下的一个文件名,就相当于重命名。
- 移动:如果目标路径是一个目录,就将文件移动到指定目录。
示例:
mv file1.txt renamed.txt # 重命名文件
mv renamed.txt /tmp/ # 移动文件到 /tmp/ 目录
4. 文件删除
4.1 删除文件
rm filename
- 删除指定文件。
示例:
rm file1.txt
4.2 强制删除文件
rm -f filename
- 强制删除:即使文件只读也不会提示。
示例:
rm -f file2.txt
5. 文件权限管理
5.1 修改文件权限(chmod)
chmod [模式] filename
- 修改文件的权限。
- 权限分为:
读 (r),写 (w),执行 (x)。 - 用户分为:文件的所有者 (u),所属组 (g),其他用户 (o)。
- 权限使用数字表示:
4:读权限 ®2:写权限 (w)1:执行权限 (x)- 数字组合:
7=4+2+1(rwx),6=4+2(rw-)
示例:
chmod 644 file1.txt # -rw-r--r--
chmod 755 script.sh # -rwxr-xr-x
chmod u+x script.sh # 给所有者添加执行权限
5.2 修改文件所有者(chown)
chown user:group filename
- 修改文件的所有者和所属组。
示例:
chown user1:usergroup file1.txt
6. 文件搜索
6.1 使用 find 命令查找文件
find [目录] -name "filename"
- 在指定目录中查找文件。
示例:
find /home -name "file1.txt"
6.2 按文件大小查找
find /path -size +10M # 查找大于10MB的文件
6.3 按修改时间查找
find /path -mtime -1 # 查找1天内修改的文件
7. 文件内容搜索
7.1 使用 grep 命令搜索内容
grep [选项] "关键词" filename
- 搜索文件中的特定内容。
常用选项:
-i:忽略大小写-n:显示行号-v:显示不包含关键词的行
示例:
grep "test" file1.txt # 搜索包含 "test" 的行
grep -i "hello" file1.txt # 忽略大小写搜索
grep -n "test" file1.txt # 显示行号
8. 文件压缩与解压
8.1 使用 tar 命令压缩文件
tar -cvf archive.tar file1 file2
-c:创建压缩包-v:显示压缩过程-f:指定文件名
示例:
tar -cvf myarchive.tar file1.txt file2.txt
8.2 解压 tar 文件
tar -xvf archive.tar
-x:解压文件
示例:
tar -xvf myarchive.tar
9. 文件处理示例脚本
示例 1:批量重命名文件
#!/bin/bash
# 批量重命名文件:将 .txt 文件改名为 .bakfor file in *.txt; domv "$file" "${file%.txt}.bak"
done
示例 2:查找并删除大文件
#!/bin/bash
# 查找并删除大于50MB的文件find /path/to/search -type f -size +50M -exec rm -f {} \;
示例 3:自动备份文件
#!/bin/bash
# 自动将文件备份到指定目录SOURCE_DIR="/path/to/source"
BACKUP_DIR="/path/to/backup"cp -r "$SOURCE_DIR"/* "$BACKUP_DIR"/
echo "Backup completed!"
相关文章:
【linux】shell(36)-文件操作
1. 文件创建 1.1 使用 touch 命令创建空文件 touch filename创建一个名为 filename 的空文件。如果文件已存在,touch 会更新该文件的时间戳。 示例: touch file1.txt1.2 使用重定向符创建文件 > filename使用 > 符号创建一个空文件。如果文件…...
c语言——数据结构【链表:单向链表】
上篇→快速掌握C语言——数据结构【创建顺序表】多文件编译-CSDN博客 一、链表 二、单向链表 2.1 概念 2.2 单向链表的组成 2.3 单向链表节点的结构体原型 //类型重定义,表示存放的数据类型 typedef int DataType;//定义节点的结构体类型 typedef struct node {union{int l…...
Python 标识符是啥?
Python 的标识符就是我们写代码时用来给变量、函数、类等取名字的东西。 你写的 my_variable 是个标识符, 定义的 add_numbers 函数名也是个标识符, 甚至你写的 Cat 类名,也是标识符。 一句话总结:标识符就是代码里给“东西”起…...
视频及JSON数据的导出并压缩
npm下载安装 jszip 和 file-saver 这两个库来实现文件的压缩和保存功能: npm install jszip npm install file-saver 导入依赖库: import JSZip from jszip; import { saveAs } from file-saver; 方法实现: batchDownload() {const zip…...
VScode使用教程(菜鸟版)
目录 1.VScode是什么? 2.VScode的下载和安装? 2.1下载和安装 下载路径: 安装流程: 一、点击【Download for Windows】 二、等一小会儿的下载,找到并双击你下载好的.exe文件,开始进入安装进程 三、点…...
【漏洞复现】Grafana 安全漏洞(CVE-2024-9264)
🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦 一、漏洞概述 1.1漏洞简介 漏洞名称:Grafana 安全漏洞 (CVE-2024-9264)漏洞编号:CVE-2024-9264 | CNNVD-202410-1891漏洞类型:命令注入、本地文件包含漏洞威胁等级:…...
Android AOSP 源码中批量替换“phone“为“tablet“的命令详解
我来帮你写一篇关于这条命令的分析博客。 Android 项目中批量替换"phone"为"tablet"的命令详解 前言 在 Android 开发中,有时我们需要批量修改资源文件中的某些文本内容。今天我们来分析一条结合了 grep 和 sed 的强大命令,该命令用于将项目中的 “ph…...
基于JavaWeb(SSM+MySQL)问卷调查管理系统设计与实现毕业论文
标题:基于 JavaWeb(SSMMySQL)问卷调查管理系统设计与实现 内容:1.摘要 摘要:本文介绍了一个基于 JavaWeb(SSMMySQL)的问卷调查管理系统的设计与实现。该系统旨在为用户提供一个高效、便捷的问卷调查工具,帮…...
域内用户枚举与密码喷洒与密码爆破
域控:192.168.72.163 攻击者:192.168.72.162 域:hacker.com 用户枚举 as-rep 回复状态判断域用户 用户存在且启用:KDC_ERR_PREAUTH_REQUIRED (需要额外的预认证) 用户存在但禁用:KDC_ERR_CLIENT_REVOKED NT Stat…...
DIY 集合求并集(union)运算的代码 ← Python
【算法分析】 已知 Python 提供了求并集运算的函数 union。代码示例如下; >>> s1{1,2,3} >>> s2{2,3,7,1,9} >>> s1.union(s2) {1, 2, 3, 7, 9} >>> 不过,知其然也要知其所以然。 本例自己 DIY 集合求并集(union…...
Redis bitmaps 使用
应用场景: 记录id为 1 的用户,2024年12月签到情况,并统计; 记录 1号签到 zxys-redis:0>setbit 1:202412 1 1 记录 2号签到 zxys-redis:0>setbit 1:202412 2 1 记录 3号未签到 zxys-redis:0>setbit 1:202412 3 0 …...
vue深层数据响应的问题
vue版本为v2.16 数据是数组数据,且初始数据为空; 当接口返回的数据直接赋值到字段之后导致深层的子项数据无法被监听到; 数据结构如下: //数据结构//初始化数据 data:[] 接口返回数据 resData:[{id:"",name:"&quo…...
解决Nginx + Vue.js (ruoyi-vue) 单页应用(SPA) 404问题的指南
问题描述 在使用Vue.js构建的单页应用(SPA)中,特别是像ruoyi-vue这样的框架,如果启用了HTML5历史记录模式进行路由管理,那么用户直接访问子路径或刷新页面时可能会遇到404错误。这是因为当用户尝试访问一个非根路径时…...
项目计划表如何制作?使用甘特图制作项目计划表的步骤
在项目管理中,项目计划是项目的核心要素,它详细记录了项目任务详情、责任人、时间规划以及所需资源。 这份计划不仅为项目推进提供指引,更是控制范围蔓延、争取更多支持的有力工具。 然而,如同项目管理的其他环节一样࿰…...
Flutter-底部分享弹窗(showModalBottomSheet)
showModalBottomSheet 构造函数的样式 Future<T?> showModalBottomSheet<T>({required BuildContext context, // 上下文对象,通常是当前页面的上下文bool isScrollControlled false, // 控制底部弹窗的大小,如果为…...
初学stm32 --- 时钟配置
目录 stm32时钟系统 时钟源 (1) 2 个外部时钟源: (2)2 个内部时钟源: 锁相环 PLL PLLXTPRE: HSE 分频器作为 PLL 输入 (HSE divider for PLL entry) PLLSRC: PLL 输入时钟源 (PL…...
LeetCode:226.翻转二叉树
跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的! 代码随想录 LeetCode:226.翻转二叉树 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 …...
(css)鼠标移入或点击改变背景图片
(css)鼠标移入或点击改变背景图片 html <div class"mapTip"><divv-for"(item, index) of legendList":key"index"class"mapTipOne":class"{ active: change index }"click"legendHandle(item, index)"…...
Unbuntu下怎么生成SSL自签证书?
环境: WSL2 Unbuntu 22.04 问题描述: Unbuntu下怎么生成SSL自签证书? 解决方案: 生成自签名SSL证书可以使用OpenSSL工具,这是一个广泛使用的命令行工具,用于创建和管理SSL/TLS证书。以下是生成自签名…...
OpenGL ES 03 加载3张图片并做混合处理
OpenGL ES 02 加载3张图片并做混合处理 什么是纹理单元纹理单元的作用使用纹理单元的步骤详细解释加载图片并绑定到到GPU纹理单元采样器的设置1.设置采样器变量的纹理单元编号,目的是为了告诉纹理采样器,从哪个纹理单元采集数据2.如果你没有显式地设置采…...
别再只抄电路图了!深入剖析DC-DC变换器电流采样与ADC保护的硬件细节(以国赛A题为例)
深入解析DC-DC变换器电流采样与ADC保护的硬件设计精髓 在功率电子系统的设计中,电流采样和ADC输入保护往往被视为"配角",但正是这些看似次要的环节,常常成为系统可靠性的致命弱点。我曾在一个工业电源项目中,因为忽视了…...
RePKG终极指南:解锁Wallpaper Engine资源包的专业工具
RePKG终极指南:解锁Wallpaper Engine资源包的专业工具 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 你是否曾经对Wallpaper Engine中精美的动态壁纸感到好奇ÿ…...
破解软件安全计划人才困局:从安全左移到DevSecOps实践
1. 软件安全计划(SSI)的困境与破局:从一份调查报告说起 最近,一份由新思科技(Synopsys)在中国市场发起的调查报告,在不少技术管理者的圈子里引发了讨论。报告里一个刺眼的数字是: 6…...
不只是跑通:用D435i和VINS-Mono做个室内小车的视觉里程计demo
从D435i到移动机器人:VINS-Mono室内视觉里程计实战指南 当Intel RealSense D435i深度相机遇上VINS-Mono这个轻量级视觉惯性里程计框架,我们能在一台简易ROS小车上实现怎样的定位与建图效果?本文将带你从硬件连接开始,逐步完成传感…...
瑞为技术获IPO备案:年营收4.4亿 亏损6815万
雷递网 雷建平 5月15日厦门瑞为信息技术股份有限公司(简称“瑞为技术”)日前获IPO备案,拿到了上市钥匙。与瑞为技术一同拿到上市备案的公司还有上海仙工智能科技股份有限公司、江西齐云山食品股份有限公司、广东鼎泰高科技术股份有限公司。年…...
Rust命令行工具开发实战:从架构设计到工程化发布
1. 项目概述:为什么是Rust,为什么是命令行工具?最近几年,如果你关注过系统编程或者高性能工具领域,Rust这个词出现的频率会越来越高。它不再是一个“未来之星”,而是实实在在地在重塑我们手中的工具链。我自…...
欢迎使用Marp CLI
欢迎使用Marp CLI 【免费下载链接】marp-cli A CLI interface for Marp and Marpit based converters 项目地址: https://gitcode.com/gh_mirrors/ma/marp-cli 第二页幻灯片 列表项1列表项2列表项3 代码演示 def hello_world():print("Hello from Marp CLI!"…...
ORTC与AI融合:从实时传输到智能通信的架构演进与实践
1. 项目概述:当实时通信遇上人工智能最近几年,我身边不少做音视频通信和做AI算法的朋友,聊天时总绕不开一个话题:ORTC(Object Real-Time Communication)和AI,这两者到底能擦出什么样的火花&…...
OpenMetadata企业级元数据平台:智能化数据治理的架构革新与实践路径
OpenMetadata企业级元数据平台:智能化数据治理的架构革新与实践路径 【免费下载链接】OpenMetadata OpenMetadata is a unified metadata platform for data discovery, data observability, and data governance powered by a central metadata repository, in-dep…...
2026届学术党必备的AI辅助写作网站实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 于学术研究范畴之内,撰写上一篇具备高质量水平的论文,乃是每一位学者…...
