#!/bin/bash
######函数roll_di生成随机数
function roll_die() {
# capture parameter
declare -i DIE_SIDES=$1
# check for die sides
if [ ! $DIE_SIDES -gt 0 ]; then
# default to 6
DIE_SIDES=6
fi
# echo to screen
targDir=/data2/candetail #文件名修改之后存放的位置
cd /data2/canfile #cd到存放源文件的目录
find . -type d |
while IFS="" read -r dir ; do
if [[ -f "${dir}"/candatail-file.csv ]] ; then
echo mv -i "${dir}/candatail-file.csv" "${targDir}/candatail-file.csv$(roll_die 10000)"
mv -i "${dir}/candatail-file.csv" "${targDir}/candatail-file.csv$(roll_die 10000)"
######函数roll_di生成随机数
function roll_die() {
# capture parameter
declare -i DIE_SIDES=$1
# check for die sides
if [ ! $DIE_SIDES -gt 0 ]; then
# default to 6
DIE_SIDES=6
fi
# echo to screen
echo $[ ( $RANDOM % $DIE_SIDES ) + 1 ]
}
#也可以定义一个变量
#set i=0;
#i=$(date+%s+%N);
#用i 来代替下面的roll_die 10000
#当然如果用RANDOM 代替也是可以的
#可能有人会说,如果为什么要有生成随机数的代码,完全可以用${dir}来代替${roll_die 10000}。由于在我的系统中,所要寻找的文件对应的上级目录是相同的,所以就不能用#用文件名后加上级目录的方法更改文件名了,如果那样的话,生成的文件名又会相同。
######
mkdir /data2/candetail #创建存放文件的目录targDir=/data2/candetail #文件名修改之后存放的位置
cd /data2/canfile #cd到存放源文件的目录
find . -type d |
while IFS="" read -r dir ; do
if [[ -f "${dir}"/candatail-file.csv ]] ; then
echo mv -i "${dir}/candatail-file.csv" "${targDir}/candatail-file.csv$(roll_die 10000)"
mv -i "${dir}/candatail-file.csv" "${targDir}/candatail-file.csv$(roll_die 10000)"
fi
done
参考:1. http://unix.stackexchange.com/questions/11697/how-copy-and-rename-files-found-in-find-function-linux
2.http://islandlinux.org/howto/generate-random-numbers-bash-scripting
版权声明:本文为haikuotiankong1997原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。