概述
Linux 中的fold命令是按指定宽度折行显示文本的工具,核心作用是将过长的文本行自动拆分,避免终端或文档中出现横向滚动,常用于格式化日志、配置文件、长文本的输出,是文本排版的实用基础命令。
资料合集:https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a
一、基本语法
fold[选项][文件1][文件2]...无文件参数时,默认读取标准输入(可配合管道|对其他命令的输出做折行处理)。
二、核心功能与默认行为
- 默认按每行80个字符折行(适配传统终端的宽度);
- 折行仅按字符数拆分,不会识别单词边界(可能将一个单词从中间拆开);
- 拆分后的行保留原文本的字符顺序,多文件会按顺序拼接折行。
简单示例
新建一个长文本文件longline.txt,内容为一行超长字符串:
Linux fold command is used to wrap long lines of text into specified width, it's a basic text formatting tool.执行默认折行命令:
foldlongline.txt输出会被拆分为多行(每行最多80字符),若原行不足80字符则保持原样。
三、常用选项(重点)
fold的选项主要用于自定义折行宽度、是否识别字节/空格,高频选项均为单字符,可组合使用:
| 选项 | 英文全称 | 作用 | 实用场景 |
|---|---|---|---|
-w N | --width=N | 指定折行宽度为N个字符(核心选项) | 适配窄终端、固定文档排版宽度 |
-b | --bytes | 按字节数折行,而非字符数 | 处理含中文/多字节字符的文本(避免乱码) |
-s | --spaces | 按空格折行(不拆分单词) | 格式化英文文本、日志,保证单词完整性 |
-n | —— | 部分系统(如BSD)中替代-b,按字节折行 | 跨系统兼容场景 |
四、经典实用示例
覆盖日常最常用的折行场景,含纯英文、多字节中文、管道配合、单词防拆分等核心用法。
场景1:自定义折行宽度(最常用)
将长文本按每行30个字符折行,替代默认80字符:
fold-w30longline.txt场景2:处理中文/多字节文本(避免乱码)
中文属于多字节字符(UTF-8下占3字节),默认按字符折行可能因“字符-字节”不匹配导致乱码,需用-b按字节折行:
新建含中文的长行文件cn_longline.txt:
fold命令是Linux的文本折行工具,可将超长的文本行按指定宽度拆分,适合格式化日志和配置文件。执行按字节折行(指定每行20字节,适配窄终端):
fold-b -w20cn_longline.txt场景3:折行不拆分单词(英文文本专属)
用-s选项让fold在最近的空格处折行,保证单词完整性,避免“断词”:
# 按40字符折行,且遇空格拆分(不拆单词)fold-s -w40longline.txt输出示例(单词完整,行宽不超40):
Linux fold command is used to wrap long lines of text into specified width, it's a basic text formatting tool.场景4:配合管道处理其他命令输出
对cat、grep、ls -l等命令的超长输出做折行,比如查看目录下超长文件名的列表并折行:
# 列出当前目录所有文件,按50字符折行,避免横向滚动ls-l|fold-w50场景5:多文件批量折行并输出到新文件
将file1.txt和file2.txt按35字符折行,结果写入formatted.txt:
fold-w35file1.txt file2.txt>formatted.txt五、关键注意事项
- 多字节字符处理:UTF-8编码下,中文、表情、特殊符号均为多字节,必须加
-b按字节折行,否则会出现字符截断、乱码; -s的局限性:仅在有空格时生效,若一行无任何空格(如纯数字/密文),仍会按字符数直接拆分;- 折行不修改原文件:
fold仅格式化输出,不会改变原文件内容,需通过重定向>写入新文件才会保存折行结果; - 与
fmt命令的区别:fold是纯按长度硬拆分,无文本排版逻辑;fmt是智能格式化(自动调整行宽、保留段落、对齐单词),适合更美观的文本排版。
六、与同类命令fmt的核心区别
二者均为文本折行工具,但定位和功能差异明显,按需选择:
| 命令 | 折行逻辑 | 单词处理 | 多字节字符 | 适用场景 |
|---|---|---|---|---|
fold | 按字符/字节数硬拆分 | 默认拆分,-s可避拆 | 需加-b防乱码 | 快速格式化、日志/密文折行、管道临时输出 |
fmt | 智能调整行宽,保留段落 | 自动避拆单词 | 原生支持,无需额外选项 | 英文文档、文章、配置文件的美观排版 |
示例:用fmt格式化同一份长文本(自动按75字符折行,保留单词):
fmt-w75longline.txt总结
fold是轻量、快速的文本折行工具,核心优势是简单、高效,无多余排版逻辑,日常使用的高频组合:
- 英文短文本快速折行:
fold -w N 文件名 - 中文/多字节文本折行:
fold -b -w N 文件名 - 英文文本防断词折行:
fold -s -w N 文件名 - 命令输出临时折行:
命令 | fold -w N