Ubuntu终端如何用单条命令完成创建文件并写入内容的操作
一次性创建文件并写入内容的实现方案
方法1:直接使用重定向操作(最常用)
Shell 自带的>输出重定向操作符本身就支持目标文件不存在时自动创建,完全不需要提前执行touch命令,单条命令就能完成你的需求:
ls > someFile
该命令会直接创建someFile(如果文件已存在则会覆盖原有内容),并将ls命令的输出写入文件,和你之前分两步操作的效果完全一致。
如果不想覆盖已有文件,仅追加内容可以改用>>操作符:
ls >> someFile
方法2:写入自定义多行内容用Here文档
如果需要写入自定义的静态文本而非命令输出,可以用Here文档语法,一次性写入多行内容:
cat > targetFile << EOF 第一行自定义内容 第二行自定义内容 可以写任意多行 EOF
输入末尾的EOF后命令自动执行,中间的所有内容会完整写入新创建的targetFile中。
方法3:同时输出到终端和文件用tee命令
如果你需要内容既写入文件,又在当前终端显示,可以用tee命令:
ls | tee someFile
文件不存在时会自动创建,效果和重定向一致,同时会在终端打印ls的输出结果。
错误写法说明
你之前尝试的ls > touch ff不符合Shell语法规则:>后的第一个参数会被Shell识别为目标文件名,因此这条命令实际执行逻辑是「将ls的输出写入名为touch的文件中」,末尾的ff会被识别为ls的多余参数,自然无法实现你的预期。
内容的提问来源于stack exchange,提问作者NotQuiteSo1337
相关产品推荐
相关产品推荐

