spl 이름을 가진 새 폴더로 추출 like ‘usefulLibVersion321’ #

OS X 10.8.3에서 작업하고 나머지 작업에 대한 도움을 기대하면서 작업하려는 부분이 있습니다.

#!/bin/bash
# script accepts a path to base dir - base path to extract
# also accepts second param - archive /xys/there/usefulLib-version-3.2.1.zip
# 1. cd to base
# 2. get name path of file, 'useful-lib-version-3.2.1.zip'
# 3. strip away extn and -._ spaces so its 'usefulLibversion321' if possible make init char capital of each token (from second) before removing the separator like 'usefulLibVersion321'
# 4. if this folder exists in base then add 1 or 2 or 3 till we get a new folder name, create that. cd to that new folder
# 5. give extract command to original file here (like jar xp -file- or other)


cd $1
file1=$2

file1fullname=$(basename $file1)
file1name=${file1fullname%.*}


echo ${file1fullname}

echo ${file1name}
file1sname=${file1name//./}

file1sname=${file1sname//-/}

file1sname=${file1sname//_/}
file1sname=${file1sname// /}
echo ${file1sname}

mkdir ${file1sname}
cd ${file1sname}
#could use other extract command, i know this one of java
jar xf $2

포인트 4에 대한 도움이 필요합니다.

동기 부여 : 다운로드 한 많은 jar 및 기타 아카이브를 빠르게 확장합니다. 때로는 스프링 및 기타 프레임 워크 및 유틸리티가있는 많은 .jar 파일을 얻습니다.



답변

아래의 날짜 이름 지정과 이름 충돌이 두 번 이상 발생하지 않는 방법은 어떻습니까? 믹스에 몇 초를 추가 할 수도 있지만 대부분의 경우 충분히 강력 해 보입니다.

DATE=$(date +"%Y%m%d%H%M")
final=${file1sname}_${DATE}
if [-a $final]
  then final=${file1sname}_${DATE}_1
  sleep 60 
  #we will prevent another run of this tool in the current minute 
fi


답변