셸 파일 복사
##原文件目录,需要解析的文件目录
RESOURCEPATH="/home/hsinghsu/new"
##将原文件拷贝到的目录,将文件统一拷贝到该目录
TOPATH="/home/hsinghsu/to"
##原系统文件上传的路径,用于拼接原文件在原系统中的绝对路径
RESOURCEFLAG="D://upload"
##原文件在linux系统的前缀,用于拼接原文件在原系统中的绝对路径
RESOURCEPRE="/home/hsinghsu/new"
##生成导出文件txt
EXPORTTXT="/home/hsinghsu/export.txt"
##RESOURCEPRE值的长度
resourceLength=${#RESOURCEPRE}
##echo $resourceLength
#获得随机数返回值,用于生成新的文件名
function random()
{
## +%s获得时间戳,当前到:1970-01-01 00:00:00 相隔的秒数,+%N 获得当前时间的纳秒数据,精确到亿分之一秒
num=$(date +%s%N);
echo $num;
}
##在txt中打印标头
echo -e "原文件名\t新文件名\t原文件路径\t新文件路径">>$EXPORTTXT
##解析文件拷贝文件函数
function COPYFILES(){
##获取原文件及目录列表
filelist=`ls -l $RESOURCEPATH`
##循环遍历文件
for filename in $filelist;do
##判断是否是文件
if [ -f $filename ] ; then
##echo "this is a file,file name is $filename , file:`pwd`/$filename"
##文件在linux系统中存放的全路径
tfilepath=`pwd`/$filename
##获取子字符串,获取目录的结构,以/开始
tmpFilePath=${tfilepath:resourceLength}
##原始文件在原系统中的目录结构
oldFilePath=$RESOURCEFLAG$tmpFilePath
tfile=$filename;
##拷贝后的文件名,不含后缀,不含/
oldFileName=${tfile%.*}
##拷贝后的文件后缀,不含.
oldFileNameExt=${tfile##*.}
##echo "oldFileName:$oldFileName"
##echo "oldFileNameExt:$oldFileNameExt"
##新文件名,通过随机数生成19位的数字
newFileName=$(random)
##echo "newFileName:$newFileName"
##将生成的文件名称写入导出日志文件中,打印的内容:原文件名\t新文件名\t原文件路径\t新文件路径
echo -e "$filename\t$newFileName.$oldFileNameExt\t$oldFilePath\t$TOPATH/$newFileName.$oldFileNameExt">>$EXPORTTXT
##将原文件复制在制定的目录下
cp $RESOURCEPATH/$filename $TOPATH/$newFileName.$oldFileNameExt
##判断是否是目录
elif [ -d $filename ] ; then
##echo "this is a dict,dict name is $filename ,dict:`pwd`/$filename"
cd $filename
RESOURCEPATH=`pwd`
##对目录递归执行COPYFILES
COPYFILES
RESOURCEPATH=`dirname $RESOURCEPATH`
cd $RESOURCEPATH
##else
##echo "$RESOURCEPATH/$filename is not a common file.Please check."
fi
done
}
cd $RESOURCEPATH
COPYFILES
echo "ALL DONE"
실행 후 마지막 으로 로그 파일 이 생 성 됩 니 다. 파일 내용 표시: 원본 파일 이름\t 새 파일 이름\t 원본 파일 경로\t 새 파일 경로
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.