#!/bin/bash
SOURCE="/C/MSDFFiles/IPFiles/Source"
WORKING="/C/MSDFiles/IPFiles/Working"
rm -rf ./Working/*
cp "$SOURCE/"* "$WORKING/" 2> /dev/null
echo "DONE"
我正在尝试将所有文件从源码复制到工作但是它无法正常工作,我的输出完成但文件没有传输到工作文件夹
答案 0 :(得分:3)
您的问题很可能是your script's line endings being currupted by Windows的结果。 Linux行结尾始终是\n
(一个换行符),但在Windows中它们是\r\n
(回车符后跟换行符)。
这里你可能在路径声明后有一个回车符。 从脚本中删除回车符,它应该解决问题。
如果您使用vim
,则可以使用:set list
命令查看文件中的所有不可打印字符。
答案 1 :(得分:3)
从错误消息判断
cp:target` \ r'不是目录
您的脚本中的换行符似乎存在问题(\r
为Carriage Return
)。你在Windows上编辑文件了吗?
您应该可以使用
之类的内容删除这些字符recode ibmpc..latin1 script.sh
或
mv script.sh script.tmp
cat script.tmp | tr -d '\r' > script.sh
rm script.tmp
或
sed -i "s/\r//g" script.sh