标签: cp

如何在 bash 脚本中使用包含带空格的文件名的变量?

我有一个在 OS X 上运行的简单 bash 脚本,它删除特定的文件和目录并在它们的位置复制新的文件和目录。一个 Mac .app 目录包含一个空格,当我运行脚本时出现“没有这样的文件或目录”错误。

这是相关的代码。大量已被删减,因此不可能简单地对这些进行硬编码(变量必须按原样分解):

CP="cp -Rf"

INSTALL_DIR="/Applications/"

APP="The App.app"

NEWAPP="$HOME/Downloads/The App.app"

$CP "$NEWAPP " "$INSTALL_DIR$NEWAPP"
Run Code Online (Sandbox Code Playgroud)

我尝试过The\ App.app没有运气的转义,以及尝试单引号、双引号和双转义,但没有任何效果。我想有一种简单的方法可以做到这一点。

谢谢你的帮助。

bash filenames spaces cp

2
推荐指数
1
解决办法
7530
查看次数

Linux/Cygwin递归复制文件更改扩展名

我正在寻找一种递归查找扩展名为X(.js)的文件的方法,并在扩展名为Y( .ts)的同一目录中制作该文件的副本.

例如/foo/bar/foobar.js - > /foo/bar/foobar.js和/foo/bar/foobar.ts

/foo/bar.js - > /foo/bar.js和/foo/bar.ts等

我的尽职调查:我正在考虑使用find&xargs&cp和大括号扩展(cp foobar.{js,ts})但是xargs使用大括号来表示从xargs传递的文件列表.这让我感到难过,因为我刚刚发现了支撑膨胀/替换的令人敬畏的酱汁.

我觉得必须有一个单线解决方案,但我很难想出一个.

我找到了执行任务的想法:将所需目录复制到新目录,然后将该目录与新目录合并; 以递归方式在每个目录中运行重命名脚本; 使用rsync复制; 使用find,xargs和cpio.

目前看来,运行像这样的重命名脚本脚本是我最终要做的.

linux rsync find xargs cp

2
推荐指数
1
解决办法
3468
查看次数

如果文件存在,则 xargs 复制

我得到了一个包含要复制的文件名的字符串。但是,只有其中一些文件存在。我当前的脚本如下所示:

echo $x | xargs -n 1 test -f {} && cp --target-directory=../folder/ --parents
Run Code Online (Sandbox Code Playgroud)

但是,我总是收到test: {}: binary operator expected错误消息。

我怎样才能做到这一点?

linux bash xargs cp

2
推荐指数
1
解决办法
4159
查看次数

每60秒bash复制一个文件

我有一个thecus nas服务器,他们似乎对他们的模板做一些棘手的事情来显示他们的文件,目前正在启动我正在运行一个shell命令将一个文件复制到另一个文件上,所以它用我的自定义模板启动经过一段时间后(我不确定这个时间是什么)它会再次用原始文件覆盖它,我的自定义模板就不见了.

这是我目前的启动脚本:

#!/bin/bash
cp /customTemplates/login.tpl /www/img/templates/adm/login.tpl
Run Code Online (Sandbox Code Playgroud)

有没有办法,执行该复制命令,比如每60秒一次?login.tpl文件只有2kb,所以我不认为这会导致任何问题.

这样做有什么不妥吗?或者我可以使用另一种技巧吗?

linux bash loops cp

2
推荐指数
1
解决办法
7215
查看次数

如何使用 cp 命令将一定数量的文件从一个目录复制到另一个目录?

我的一个文件夹中有 100 个文件。他们的名字是 1 到 100。

我想将文件 1 到 50 复制到另一个名为 的文件夹中a。像这样的事情,这不是一件好事:

cp 1 2 ... 50 ./a
Run Code Online (Sandbox Code Playgroud)

command list limit cp

2
推荐指数
1
解决办法
2839
查看次数

2
推荐指数
1
解决办法
1845
查看次数

无法使用 cp 命令将文件夹复制到 /var/www/html/

我试图将文件夹从主目录复制到 apache2 服务器根目录,即我的 Ubuntu 14.04 中的 /var/www/html。我正在使用以下命令 -

$ sudo cp文件夹/var/www/html

并得到以下结果-

cp:省略目录“文件夹名称”

apache2 cp ubuntu-14.04

2
推荐指数
1
解决办法
8299
查看次数

caret::train 传递额外的参数 rpart

我正在通过 caret::train 函数使用 rpart 构建决策树。我想要做的是将 rpart 的 minsplit 参数设置为等于 1,以便之后用 cp 修剪它。我从这里得到的是参数应该在 train 函数的 ... 中传递。但这不起作用。一个最小的可重现示例:

mod1 <- train(Species ~ ., iris, method = "rpart", tuneGrid = expand.grid(cp = 0), minsplit=1)
mod2 <- rpart(Species ~ ., iris, cp=0, minsplit=1)
Run Code Online (Sandbox Code Playgroud)

我得到的是 mod1$finalModel 和 mod2 完全不同。我希望 mod1$finalModel 就像 mod2(即完全过拟合)。我不能在 tuneGrid 上传递参数,因为它只接受一个 cp 列。

所以我的问题是:是否有插入符号在 train 函数中传递参数 minsplit=1 然后交叉验证 cp 参数?

r cp rpart r-caret

2
推荐指数
1
解决办法
3222
查看次数

Makefile错误-寻找匹配的“”“时出现意外的EOF

我的Makefile摘录如下:

.PHONY: product1 product2 product3
product1 product2 product3:
    $(MAKE) $(MAKEPRGFLAGS) -C $(LIBS_ROOT)/$@
    cp -r `ls -A | grep ".*\.a$"` $(PROJECT_PATH)/lib/ $(PRODUCT_PATH)/
Run Code Online (Sandbox Code Playgroud)

编译完成后,当尝试复制.a文件时,出现以下错误:

/ bin / sh:命令替换:第0行:寻找匹配的“”时出现意外的EOF

/ bin / sh:命令替换:第1行:语法错误:文件意外结束

我已小心地提供了匹配的牙套。我的Makefile声明有什么问题?

我在Windows中的cygwin上运行。使用Windows格式的EOL转换从Notepad ++编辑Makefile。

bash makefile cp

2
推荐指数
1
解决办法
926
查看次数

为什么这个用于复制文件的 C 程序不能正常工作?

#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    int fd1 = open(argv[1], O_RDONLY); 
    int fd2 = open(argv[2], O_WRONLY | O_TRUNC | O_CREAT, 0700);

    if (fd1 == -1 || fd2 == -1) {
        perror("cannot open file");
        exit(-1);
    }
    
    char buffer[100];
    int n;
    while (n = read(fd1, buffer, 100) > 0) { // not working
        write(fd2, buffer, n);
    }
    
    close(fd1);
    close(fd2); 
    return 0;   
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个将一个文件的内容复制到另一个文件的 C 程序。我认为 while 循环中的读取有问题,但我不确定。

c file cp

2
推荐指数
1
解决办法
46
查看次数

标签 统计

cp ×10

bash ×5

linux ×3

xargs ×2

apache2 ×1

c ×1

command ×1

file ×1

filenames ×1

find ×1

limit ×1

list ×1

loops ×1

makefile ×1

mv ×1

r ×1

r-caret ×1

rpart ×1

rsync ×1

spaces ×1

ubuntu-14.04 ×1