位置:首页 > JavaScript > JS 如何操作 Linux 文件系统:用 Node.js fs 模块完成读写、删除和目录管理

JS 如何操作 Linux 文件系统:用 Node.js fs 模块完成读写、删除和目录管理

时间:2026-08-22  |  作者:穿越地图的猫  |  阅读:0

目录

  1. 先明确前提:JavaScript 操作 Linux 文件系统依赖 Node.js
  2. 文件读写怎么做:读取、覆盖写入和追加写入
  3. 文件管理操作:删除、重命名与移动
  4. 目录怎么处理:创建与删除的基本方法
  5. 使用这些 API 前,最好记住的边界条件

前言

在 Linux 环境里用 JavaScript 操作文件系统,实际依赖的并不是浏览器能力,而是 Node.js 提供的 fs 模块。很多人第一次接触这类需求时,最容易混淆的是“哪些操作能直接做、分别适合什么场景、又有哪些边界条件必须注意”。这篇文章按常见任务重新整理了文件读写、文件管理和目录管理三组操作,保留原始示例代码,并把浏览器与 Node.js 的运行边界一并说明清楚。读完之后,你可以快速判断该用哪个 API,以及每个 API 会带来什么结果。

在 Linux 环境里用 JavaScript 操作文件系统,实际依赖的并不是浏览器能力,而是 Node.js 提供的 fs 模块。很多人第一次接触这类需求时,最容易混淆的是“哪些操作能直接做、分别适合什么场景、又有哪些边界条件必须注意”。

这篇文章按常见任务重新整理了文件读写、文件管理和目录管理三组操作,保留原始示例代码,并把浏览器与 Node.js 的运行边界一并说明清楚。读完之后,你可以快速判断该用哪个 API,以及每个 API 会带来什么结果。

先明确前提:JavaScript 操作 Linux 文件系统依赖 Node.js

如果你要在 Linux 上用 JavaScript 直接读写本地文件,核心就是 Node.js 内置的 fs 模块。它负责与底层文件系统交互,常见的增删改查基本都围绕它展开。

先引入 fs 模块:

const fs = require('fs');

这里有一个前提不能忽略:这些 API 运行在 Node.js 环境 中,而不是浏览器。浏览器出于安全限制,不能像 Node.js 一样直接访问 Linux 文件系统。

文件读写怎么做:读取、覆盖写入和追加写入

读取文件:适合查看文本内容

读取文件最常见的入口是 fs.readFile。你需要传入文件路径、编码方式,以及处理结果的回调函数。

展示 Node.js fs 模块中文件读取、覆盖写入和追加写入三种操作差异的信息图
fs 文件读写三种常见方式用对读取、覆盖写入和追加写入,是最常见也最容易混淆的第一步。
fs.readFile('/path/to/your/file.txt', 'utf8', (err, data) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log(data);
});

如果路径不存在、权限不足,或者文件本身无法正常读取,错误会通过 err 返回。指定 'utf8' 后,拿到的是可直接使用的文本内容。

写入文件:会覆盖原有内容

当你想把一段新内容直接写进文件,可以使用 fs.writeFile。这类写法默认是覆盖式的,适合生成配置文件、输出结果文件等场景。

const content = 'Hello, World!';
fs.writeFile('/path/to/your/file.txt', content, 'utf8', (err) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log('File has been sa ved!');
});

如果目标文件已经存在,原内容会被新内容替换,因此在日志、记录追加这类场景里通常不建议直接用它。

追加内容:保留原文件内容

不想覆盖已有数据时,可以改用 fs.appendFile。它会把新内容追加到文件末尾,适合写日志、补充文本或逐步累积输出结果。

const content = 'nNew line of text';
fs.appendFile('/path/to/your/file.txt', content, 'utf8', (err) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log('Content has been appended!');
});

示例里在新内容前加了 n,这样追加后会从新的一行开始,更适合文本类文件。

文件管理操作:删除、重命名与移动

删除文件:直接移除指定路径文件

删除单个文件可以使用 fs.unlink。只要路径指向的是目标文件,就可以执行删除。

fs.unlink('/path/to/your/file.txt', (err) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log('File has been deleted!');
});

这类操作通常不可逆,实际使用时至少要确认路径准确,避免误删。

重命名文件:也可用于移动文件

fs.rename 不只是改名字,也常用于文件移动。因为你只要把旧路径和新路径都传进去,文件就会从原位置变为新位置。

fs.rename('/path/to/your/old-file.txt', '/path/to/your/new-file.txt', (err) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log('File has been renamed!');
});

如果新路径只是文件名不同,那就是重命名;如果目录也变了,那本质上就是一次移动操作。

目录怎么处理:创建与删除的基本方法

创建目录

创建目录使用 fs.mkdir,适合在程序运行过程中为输出文件、缓存文件或上传内容准备存放位置。

展示 Node.js fs 模块中文件与目录管理操作及限制条件的信息图
文件与目录管理操作一览删除、重命名和目录处理看似简单,但限制条件比读写更值得先确认。
fs.mkdir('/path/to/your/new-directory', (err) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log('Directory has been created!');
});

如果目录已存在,或者当前用户没有权限创建,同样会进入错误处理分支。

删除目录:目录必须为空

删除目录可以使用 fs.rmdir,但有一个非常关键的限制:目录必须为空,否则删除不会成功。

fs.rmdir('/path/to/your/directory', (err) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log('Directory has been deleted!');
});

这也是很多初学者第一次操作目录时最容易踩到的点。如果目录里还有文件或子目录,就需要先清空内容,再执行删除。

使用这些 API 前,最好记住的边界条件

从示例可以看出,Node.js 的 fs 模块已经覆盖了文件系统最常见的基础操作:读、写、追加、删、改名、建目录、删目录。对于日常脚本、后端服务、自动化任务来说,这些能力通常已经够用。

不过在真正使用前,至少要确认三件事:运行环境是不是 Node.js、目标路径是否正确、当前进程是否具备对应权限。尤其是删除和覆盖写入这类操作,一旦路径写错,影响会直接落到真实文件系统上。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多