在 Linux 系统管理中,我们经常需要进行文件整理,我们并不需要移动文件本身,而是需要将某个文件的内容提取出来,保存到一个新建的文件夹中,将配置文件的内容备份到归档目录,或者将日志文件提取出来分析。
本文将详细介绍如何使用 Linux 命令高效地完成“复制文件内容”并“新建文件夹”这一操作。
基础操作:使用 cat 命令
最直接的方法是结合使用 cat)和 >(重定向输出)命令,以及 mkdir(创建目录)命令。

假设你有一个源文件 source.txt,你想把它的内容复制到一个名为 backup 的文件夹中的 target.txt 文件里。
创建文件夹
使用 mkdir 命令创建目录,如果父目录不存在,建议加上 -p 参数(递归创建)。
mkdir -p backup
使用 cat 读取源文件,并通过重定向符号 > 将内容写入新文件夹下的目标文件中。
cat source.txt > backup/target.txt
解释:
cat source.txt:读取源文件的内容。>:将读取到的内容输出重定向。backup/target.txt:指定输出的目标路径。
进阶技巧:使用 tee 命令
如果你希望在将内容复制到文件的同时,还能在终端屏幕上看到文件的内容,tee 命令是更好的选择,它相当于“读入并写入”。
tee backup/target.txt < source.txt
或者,你可以直接使用管道符连接:
cat source.txt | tee backup/target.txt
优势: 这种方法不仅能将内容写入新文件夹的文件中,还能在命令行界面实时显示文件内容,非常适合查看大文件的处理过程。
批量处理:使用 find 命令
如果你的需求比较复杂,比如需要在当前目录下查找所有 .log 文件,并将它们的内容分别复制到 logs_backup 文件夹中,可以使用 find 命令结合 exec 参数。
find . -name "*.log" -exec sh -c 'mkdir -p logs_backup && cat "$1" > logs_backup/"$1"' _ {} \;
命令解析:
find . -name "*.log":查找当前目录及其子目录下所有后缀为.log的文件。-exec sh -c '...' _ {} \;:执行一个 shell 命令。mkdir -p logs_backup:确保目标文件夹存在。cat "$1" > logs_backup/"$1":将找到的文件($1复制到logs_backup文件夹下同名的文件中。
在 Linux 中,“复制文件内容并新建文件夹”并不需要复杂的脚本,核心在于熟练掌握以下两个命令的组合:
mkdir -p:负责创建文件夹结构。cat >或tee:负责将源文件内容写入目标位置。
掌握这些技巧,可以让你在处理大量配置文件或日志归档时,效率提升数倍。
