[英]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
字符串-在这种情况下,请全部替换空格。
您可能想尝试将find
与xargs
和cp
结合使用。 请参阅如何使用xargs复制名称中带有空格和引号的文件? 有关更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.