Node.js 如何使用cp命令复制文件/文件夹?

Node.js 如何使用cp命令复制文件/文件夹?,node.js,shell,cp,Node.js,Shell,Cp,我有一个文件夹,cs-template,结构如下: cs-template |_ public |_ assets |_ img |_ example.png |_ robots.txt |_ src |_ components |_ Accessibility

我有一个文件夹,
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\u 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
。正确的方法是什么?

试试这个:

您可以使用命令将文件夹/源的内容复制到另一个现有文件夹/目的地

cp -a /source/. /dest/
-a选项是一个改进的递归选项,它保留所有文件属性,还保留符号链接

这个。在源路径的末尾是一个特定的cp语法,它允许复制所有文件和文件夹,包括隐藏的文件和文件夹

-答:保留指定的属性,如目录、文件模式、所有权、时间戳,如果可能,还保留其他属性:上下文、链接、xattr、全部

-v:解释正在做什么,详细视图

-r:递归复制目录。范例

如果不起作用,则使用替代选项:

有些模块支持复制文件夹及其内容。最流行的是扳手.js:

//深度复制现有目录

wrench.copyDirSyncRecursive('directory_to_copy','location_where_copy_should_end_up');
另一种选择是节点fs extra:

fs.copy('/tmp/mydir', '/tmp/mynewdir', function (err) {
  if (err) {
    console.error(err);
  } else {
    console.log("success!");
  }
});

仅通过此复制
package.json
如何
cp-r./cs template//new_dest1
?在终端中运行此命令时会发生什么?它是否会引发任何权限问题或其他问题?我认为首先,在将命令输入代码之前,您应该在终端上尝试该命令。
cp-r./cs template//new_dest1
当我从终端运行时,会正确复制所有内容。但是,当我在代码中运行它时,它不会复制
src
文件夹,并且会丢失
public
文件夹中的一些文件夹/文件。我能做些什么呢?在Linux上,阅读或尝试
/bin/cp--help
。也考虑使用