繁体   English   中英

使用cp复制多个文件

[英]Copying Multiple files using cp

我想使用cp一次性复制多个文件。 问题是文件名到处都有空格。 因此,我尝试了cp $(ls -1|tr ' ' '') dest但是显然我无法截断任何内容。 然后,我尝试将空空间删除为空格。 那也不起作用。 我尝试在for循环上运行它。 那也没用。 有人可以帮帮我吗????

安,好

我在写这个:

for i in *
do
if echo $i | grep " "
then
    NEWNAME=`echo $i | tr ' ' '_'`
    mv "$i" $NEWNAME
fi
done

但是在这种情况下,您需要重命名文件(当然,您还必须使代码适应您的需要)。我的.bashrc中有此功能

问题是,你不能tr文件名cp -你有他们存在于磁盘上给它的文件的名称,否则将无法找到他们。 因此,听起来您实际上想要的是为每个单独的文件cp "file with spaces" destdir/filewithspaces

ls -1 | while read filename; do
  cp "$filename" "$dest/${filename// /}" 
done

${filename// /}是bash-ism ${variable//search/replacement}一个实例(请参阅Bash手册中的shell参数扩展 ),以给出一个变量值,其中替换了所有search字符串实例用replacement字符串-在这种情况下,请全部替换空格。

您可能想尝试将findxargscp结合使用。 请参阅如何使用xargs复制名称中带有空格和引号的文件? 有关更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM