重命名后将文件从一个目录移动到另一个目录

时间:2016-03-04 09:58:39

标签: linux shell unix mv

我正在尝试将文件从一个目录移动到另一个目录但遇到一些错误,而使用shell脚本我的shell移动文件是 -

cd data
curr=`pwd`
echo $curr
bad_file=`find . -type f -not -name 'dhcp_map_*.csv' -a -type f -not -name 'cmts_map_*csv' -a -type f -not -name 'cmts_dhcp_link_map_*.csv'`

echo $?
#if [ "$?" = "0" ]; then
BAD_FILE_CMTS=$(basename "$bad_file")

echo "Bad File Found for CMTS Please check bad folder"

mv $BAD_FILE ../bad/$BAD_FILE_CMTS.bad
#fi

cd ..

我的主目录结构就像

drwxr-xr-x  bad
drwxr-xr-x  data
drwxr-xr-x  done
drwxr-xr-x  log
-rwxr-xr-x  file_chk_1.sh

有更多文件,但这些对于这个问题来说足够了!

现在在DATA目录中有3个文件

-rw-rw-r--  cmts_dhcp_link_map_20160303_1.csv
-rw-rw-r--  cmtsmap_20160303_1.csv
-rw-rw-r--  dhcp_map_20160303_1.csv

数据可以是这些文件中的任何内容..

现在我们可以看到文件CMTSMAP_20160303_1.CSV名称错误,因为它应该像CMTS_MAP_20160303_1.CSV,因为这是我在FIND命令中检查的内容。

但是当我运行这个shell时它会给我错误 -

/home/vmsow03qa/domains/vm/tools/New_topology_data_load/data
0
Bad File Found for CMTS Please check bad folder
mv: missing destination file operand after `/bad/cmtsmap_20160303_1.csv.bad'
Try `mv --help' for more information.

我无法弄清楚我在这里做了什么错误这个shell脚本总是在ECHO中打印消息“找到CMTS的错误文件请检查坏文件夹”当那些文件名称正确时。

我运行此脚本之前它工作正常现在我的QA团队说它给了我这个错误:(

请仔细研究一下!

打印消息我就像这样

cd data
curr=`pwd`
echo $curr
bad_file=`find . -type f -not -name 'dhcp_map_*.csv' -a -type f -not -name 'cmts_map_*csv' -a -type f -not -name 'cmts_dhcp_link_map_*.csv'`

echo $?
BAD_FILE_CMTS=$(basename "$bad_file")

mv $BAD_FILE ../bad/$BAD_FILE_CMTS.bad
if [ -f `ls ./../bad/$bad_file.bad` ];
then
   echo "bad file exist please check"
fi
cd ..

但如果坏文件夹中有文件,它总是在ECHO中打印消息!!

我想我做得不好:(

0 个答案:

没有答案