热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Nodejs复制文件/文件夹的方法

这篇文章主要介绍了Nodejs复制文件文件夹的方法,需要的朋友可以参考下

1.使用fs复制文件

使用fs对象的readFileSync,writeFileSync方法进行读写操作复制

cp.js

function copyIt(from, to) {

 fs.writeFileSync(to, fs.readFileSync(from));
 //fs.createReadStream(src).pipe(fs.createWriteStream(dst));大文件复制
}

copyIt(from.js,to.js);

这样就可以复制from.js到to.js

2.使用linux命令复制文件

这里使用了process对象,process对象是一个node的全局对象,可以直接使用,
process.argv属性可以获取当前执行的node命令的参数,这样我们可以通过传递文件路径来复制
child_process 可以执行linux命令

cp2.js

//获取node执行的参数
var arguments = process.argv.splice(2);

console.log(process.argv);
var child_process = require('child_process');

function copyIt(from, to) {

 child_process.spawn('cp', ['-r', from, to]); 
}

copyIt(arguments[0],arguments[1]);

运行

$ node cp2.js from.js to.js

这样同样复制了from.js文件,linux的cp -r是递归复制整个文件夹,所以这个方法也可以复制文件夹

注:process.argv输出的是当前执行的命令的所有参数组合的数组 所以用splice取后两个我们需要的


推荐阅读
  • 本文详细介绍了Linux系统中的三个主要分区:启动分区、交换分区和根分区的功能与特点,以及常见的文件类型、文件搜索方法和常用符号的使用。此外,还深入解析了mkdir和rm命令的具体应用。 ... [详细]
  • 重新审视Kubernetes的必要性
    近期,我注意到不少人误以为我是Kubernetes的推广者。实际上,我只是分享了一些适合用Kubernetes解决的案例。本文旨在探讨Kubernetes的适用场景,并提供一些替代方案。 ... [详细]
  • 当Ubuntu虚拟机的存储空间不足时,可以通过VMware轻松地为其添加新的硬盘。本文详细介绍了从关闭虚拟机、添加新硬盘到分区、格式化及挂载整个过程的操作步骤。 ... [详细]
  • 本文探讨了Python的csv模块在不同操作系统上生成文件时,默认使用DOS风格的行尾字符(即'')的问题,并提供了如何修改这一行为的方法。 ... [详细]
  • 本文介绍了如何将Linux系统中的YUM源更换为阿里云镜像源,包括网络连通性测试、原YUM源的移除、阿里云YUM源的配置以及缓存的更新等步骤。 ... [详细]
  • FTP作为一种传统的文件传输协议,广泛用于不同设备间的文件交换。然而,随着网络安全需求的提升及传输效率的要求,选择合适的FTP客户端变得尤为重要。本文将介绍如何利用WinSCP这款强大且安全的工具,实现两台电脑之间的文件高效传输。 ... [详细]
  • 本文探讨了 Boost 库中的 Program Options 组件,这是一个强大的工具,用于解析命令行参数和配置文件。文章介绍了如何正确设置和使用该组件,包括处理复杂选项和负数值的方法。 ... [详细]
  • 对于初次购买阿里云服务器的新手用户来说,如何高效地利用服务器资源并成功部署网站是一个重要的课题。本文将详细指导您完成从购买服务器到网站上线的六个关键步骤。 ... [详细]
  • GCC(GNU Compiler Collection)是GNU项目下的一款功能全面且高效的多平台编译工具,广泛应用于Linux操作系统中。本文将详细介绍GCC的特点及其基本使用方法。 ... [详细]
  • 本文探讨了如何使Shell和程序同时响应Ctrl-C信号的方法,即通过将两者置于同一进程组并将其设为终端的前台进程组。 ... [详细]
  • 如何更换Anaconda和pip的国内镜像源
    本文详细介绍了如何通过国内多个知名镜像站(如北京外国语大学、中国科学技术大学、阿里巴巴等)更换Anaconda和pip的源,以提高软件包的下载速度和安装效率。 ... [详细]
  • 探讨Linux系统中PCI设备的I/O地址与内存映射的区别及其实现方式。 ... [详细]
  • 在尝试使用Ubuntu 10.04进行Android开发时,遇到了系统无法识别HTC G1设备的情况。本文将详细介绍如何通过配置系统和安装必要的驱动来解决这一问题。 ... [详细]
  • 本文详细介绍了如何使用 Python 编程语言中的 Scapy 库执行 DNS 欺骗攻击,包括必要的软件安装、攻击流程及代码示例。 ... [详细]
  • 本文介绍了Linux内核中TCP的三种接收队列:Prequeue、sk_receive_queue和Backlog。这些队列在数据包处理过程中扮演着重要角色,帮助提高系统性能和效率。 ... [详细]
author-avatar
勇淑丁
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有