当前位置: 首页 > 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!"
http://www.lryc.cn/news/506567.html

相关文章:

  • c语言——数据结构【链表:单向链表】
  • ​Python 标识符是啥?​
  • 视频及JSON数据的导出并压缩
  • VScode使用教程(菜鸟版)
  • 【漏洞复现】Grafana 安全漏洞(CVE-2024-9264)
  • Android AOSP 源码中批量替换“phone“为“tablet“的命令详解
  • 基于JavaWeb(SSM+MySQL)问卷调查管理系统设计与实现毕业论文
  • 域内用户枚举与密码喷洒与密码爆破
  • DIY 集合求并集(union)运算的代码 ← Python
  • Redis bitmaps 使用
  • vue深层数据响应的问题
  • 解决Nginx + Vue.js (ruoyi-vue) 单页应用(SPA) 404问题的指南
  • 项目计划表如何制作?使用甘特图制作项目计划表的步骤
  • Flutter-底部分享弹窗(showModalBottomSheet)
  • 初学stm32 --- 时钟配置
  • LeetCode:226.翻转二叉树
  • (css)鼠标移入或点击改变背景图片
  • Unbuntu下怎么生成SSL自签证书?
  • OpenGL ES 03 加载3张图片并做混合处理
  • 深度学习-74-大语言模型LLM之基于API与llama.cpp启动的模型进行交互
  • PyTorch 2.0 中设置默认使用 GPU 的方法
  • 如何在 Ubuntu 22.04 服务器上安装 Jenkins
  • 【一篇搞定配置】如何在Ubuntu上配置单机/伪分布式Hadoop
  • 利用Map集合设计程序,存储城市和对应等级相关信息
  • 【自动驾驶】单目摄像头实现自动驾驶3D目标检测
  • 21 go语言(golang) - gin框架安装及使用(二)
  • Intel(R) Iris(R) Xe Graphics安装Anaconda、Pytorch(CPU版本)
  • 【Unity3D】实现可视化链式结构数据(节点数据)
  • Three.js推荐-可以和Three.js结合的动画库
  • 增强现实(AR)和虚拟现实(VR)的应用