当前位置: 首页 > news >正文

【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_filedestination_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错误。这是因为当用户尝试访问一个非根路径时…...

项目计划表如何制作?使用甘特图制作项目计划表的步骤

在项目管理中,项目计划是项目的核心要素,它详细记录了项目任务详情、责任人、时间规划以及所需资源。 这份计划不仅为项目推进提供指引,更是控制范围蔓延、争取更多支持的有力工具。 然而,如同项目管理的其他环节一样&#xff0…...

Flutter-底部分享弹窗(showModalBottomSheet)

showModalBottomSheet 构造函数的样式 Future<T?> showModalBottomSheet<T>({required BuildContext context, // 上下文对象&#xff0c;通常是当前页面的上下文bool isScrollControlled false, // 控制底部弹窗的大小&#xff0c;如果为…...

初学stm32 --- 时钟配置

目录 stm32时钟系统 时钟源 &#xff08;1&#xff09; 2 个外部时钟源&#xff1a; &#xff08;2&#xff09;2 个内部时钟源&#xff1a; 锁相环 PLL PLLXTPRE&#xff1a; HSE 分频器作为 PLL 输入 (HSE divider for PLL entry) PLLSRC&#xff1a; PLL 输入时钟源 (PL…...

LeetCode:226.翻转二叉树

跟着carl学算法&#xff0c;本系列博客仅做个人记录&#xff0c;建议大家都去看carl本人的博客&#xff0c;写的真的很好的&#xff01; 代码随想录 LeetCode&#xff1a;226.翻转二叉树 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 …...

(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自签证书?

环境&#xff1a; WSL2 Unbuntu 22.04 问题描述&#xff1a; Unbuntu下怎么生成SSL自签证书&#xff1f; 解决方案&#xff1a; 生成自签名SSL证书可以使用OpenSSL工具&#xff0c;这是一个广泛使用的命令行工具&#xff0c;用于创建和管理SSL/TLS证书。以下是生成自签名…...

OpenGL ES 03 加载3张图片并做混合处理

OpenGL ES 02 加载3张图片并做混合处理 什么是纹理单元纹理单元的作用使用纹理单元的步骤详细解释加载图片并绑定到到GPU纹理单元采样器的设置1.设置采样器变量的纹理单元编号&#xff0c;目的是为了告诉纹理采样器&#xff0c;从哪个纹理单元采集数据2.如果你没有显式地设置采…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

Kafka主题运维全指南:从基础配置到故障处理

#作者&#xff1a;张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1&#xff1a;主题删除失败。常见错误2&#xff1a;__consumer_offsets占用太多的磁盘。 主题日常管理 …...

使用SSE解决获取状态不一致问题

使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件&#xff0c;这个上传文件是整体功能的一部分&#xff0c;文件在上传的过程中…...