node.js - 如何使用 cp 命令复制文件/文件夹?
问题描述
我有一个文件夹,cs-template
其结构如下:
cs-template
|_
public
|_
assets
|_
img
|_
example.png
|_
robots.txt
|_
src
|_
components
|_
Accessibility
|_
Accessibility.js
|_
routes
|_
AppRoutes.js
|_
App.js
|_
package.json
我想将文件夹中的所有内容复制cs-template
到new_dest1
文件夹中。它们都定义在同一级别。我基本上是在调用 HTTP 请求,之后我想复制内容。因此,在路由控制器中,我定义了以下逻辑:
'use strict';
var mongoose = require('mongoose'),
Task = mongoose.model('CampusStore');
exports.list_all_campus_stores = function(req, res) {
Task.find({}, function(err, campus_store) {
const system = require('system-commands');
system('cp -r ./cs-template/**/ ./new_dest1').then(output => {
console.log(output)
}).catch(error => {
console.error(error)
});
if (err)
res.send(err);
res.json(campus_store);
});
};
cp -r ./cs-template/* ./new_dest1
只复制public
文件夹(那个也不完整)和package.json
文件。
cp -r ./cs-template/**/* ./new_dest1
复制所有内容,接受父文件夹public
和src
文件夹(意味着其中的文件夹/文件被复制,但文件夹本身不是)和package.json
. 正确的做法是什么?
解决方案
尝试这个:
您可以使用以下命令将文件夹 /source 的内容复制到另一个现有文件夹 /dest
cp -a /source/. /dest/
-a 选项是改进的递归选项,它保留所有文件属性,还保留符号链接。
这 。在源路径的末尾是一个特定的 cp 语法,它允许复制所有文件和文件夹,包括隐藏的。
-a :保留指定的属性,例如目录、文件模式、所有权、时间戳,如果可能的话,还有其他属性:上下文、链接、xattr、所有。
-v :解释正在做什么,详细视图。
-r :递归复制目录。例子
如果它不起作用,请使用替代方法:
有一些模块支持复制文件夹及其内容。最受欢迎的是 wrench.js:
// 深拷贝现有目录
wrench.copyDirSyncRecursive('directory_to_copy','location_where_copy_should_end_up');
另一种方法是 node-fs-extra:
fs.copy('/tmp/mydir', '/tmp/mynewdir', function (err) {
if (err) {
console.error(err);
} else {
console.log("success!");
}
});
推荐阅读
- sql-server - 如何在 T-SQL 中清理字符串并提取数字后缀
- python - 为什么不对结果进行排序?
- fluid - 在一个系统组件中重新声明两个中包
- grails - 优化列表 grails 数据表的显示
- ms-access - 在 Visual C++ 中创建 Access 数据库
- php - 我的 jQuery 隐藏/查看功能有效,但如果通过另一个脚本执行则无效
- mongodb - 如何制作 MongoDB 索引以加快键/值子文档排序
- powershell - 如何让 PID 使用 PowerShell 终止进程
- c - Problem in executing two or more threads of the same type - Pthread C
- ios - 带有 Activity Loader 的警报 ViewController 收到警告而不是关闭 Swift