Linux shell脚本分割文件

本文介绍了一个使用Bash脚本实现的文件管理和处理流程。包括文件夹的创建和删除、大文件生成及分割、文件移动及目录信息的记录等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash
#使用bash脚本开发
#Program:
#   http://man.linuxde.net/ 指令网址
#
#History:
#   2017-03-27 19:50:13

folder="/home/luzhiwei/test/"
file="/home/luzhiwei/test/log.txt"

#文件夹的删除与重新创建
if [ -d "$folder" ]; then
    rm -fir "$folder"
    mkdir "$folder"
    else
    mkdir "$folder"
    echo "文件夹创建成功!"
fi

#DD命令生成120M的文件全是‘#’
if [ ! -f "$file" ];then
#   touch "$file"
    dd if=/dev/zero of="$file" bs=120M count=1;
    echo "log.txt文件创建成功!"
fi

#进行分割成为4到6个文件
#-b 文件大小
#-a 指定后缀的长度
#-d 使用数字后最而不是字母
#-l 指定每个文件的行数
#--verbose 显示生成的信息
#.txt前缀
split --verbose -b 25M "$file" -d -a 2 --additional-suffix=.txt test_split_

#移除log.txt
rm "$file"
echo "25M文件大小分割完毕!"

#home/luzhiwei/文件下的分割文件移到目标文件
#-f直接覆盖
#-t指定文件夹
mv -f test_split_00.txt test_split_01.txt test_split_02.txt test_split_03.txt test_split_04.txt -t "$folder"

#读取目录详细信息
echo "检索目录的详细信息!"
#显示到终端
#"."表示当前目录和“..”表示当前目录的父目录
#-t时间排序 -a列出隐藏文件 -l列出文件详细信息
ls -al -t "$folder"

#目录详细信息保存到文件msg.txt
echo "写入文档msg.txt"
ls -al -t "$folder" >"$folder/msg.txt"

#cat这个文件
#cat命令 连接文件并打印到标准输出设备上,cat经常用来显示文件的内容,类似于type
#-n 1开始对所有输出加行数编号
#-b 对于空白行不编号
#-A 显示不可打印字符,行尾显示“$” 
cat -n "$folder/msg.txt"

#打印当前系统的所有相关信息
echo "当期系统的所有信息"
uname -a
#-v 操作系统的版本 -p 输出处理器类型 -i输出硬件平台名称 -o 输出操作系统名称
echo "Ubantu的版本信息"
uname -v
echo "Kernel的版本信息"
uname -p -i -o

### 如何在 Linux 中拼接两个 BIN 文件Linux 系统中,`cat` 是一种非常强大的命令行工具,可以用来连接多个文件的内容并将它们写入标准输出或指定的目标文件。对于二进制文件(如 `.bin`),同样可以通过 `cat` 来实现文件的拼接操作。 #### 使用 `cat` 命令拼接两个 BIN 文件方法 以下是具体的命令示例: ```bash cat file1.bin file2.bin > result.bin ``` 上述命令的作用是将 `file1.bin` 和 `file2.bin` 的内容按顺序拼接到一起,并将最终的结果保存到新的文件 `result.bin` 中[^1]。需要注意的是,在执行此命令前,目标文件 `result.bin` 如果已经存在,则会被覆盖;如果不存在,则会自动创建该文件。 #### 关于重定向符的行为注意事项 当使用重定向符号 (`>`) 将数据写入某个文件时,需注意其行为特点。例如,下面这个例子可能会导致意外结果: ```bash cat file1.bin file2.bin > file1.bin ``` 在这种情况下,由于 shell 在运行左侧命令之前就已经打开了用于写入的文件 `file1.bin` 并将其截断为零长度,因此原文件中的内容将会被清空,最后得到的新文件含来自 `file2.bin` 的内容[^3]。为了避免这种情况发生,请始终确保源文件和目标文件不同名。 #### 完整代码实例展示 假设当前目录下有如下两个待拼接的BIN文件: - `part1.bin`: 含部分固件镜像; - `part2.bin`: 继续补充剩余的部分固件镜像。 通过以下方式完成这两个文件的合并过程: ```bash # 创建测试用的二进制文件 (实际应用无需这些步骤) echo -n "ABCDEF" > part1.bin echo -n "GHIJKL" > part2.bin # 执行真正的文件拼接动作 cat part1.bin part2.bin > full_image.bin # 查看生成后的完整图像文件内容验证效果 xxd full_image.bin ``` 以上脚本片段展示了如何利用 `cat` 实现简单有效的二进制文件组合功能。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值