extraer a una nueva carpeta con nombre de spl

2

trabajando en OS X 10.8.3, tengo una parte de lo que quiero trabajar, esperando ayuda con el resto

#!/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

Necesito ayuda con el punto 4.

Motivación: expande rápidamente los muchos archivos jar y otros archivos que descargo. algunas veces obtienes muchos archivos .jar con Spring y otros frameworks y utilidades.

    
pregunta tgkprog 07.06.2013 - 15:52

1 respuesta

2

¿Qué hay de la fecha que se menciona a continuación y un intento de garantizar que no ocurra más de una colisión de nombres? También puede agregar segundos a la mezcla, pero esto parece más que lo suficientemente robusto para la mayoría de los casos.

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
    
respondido por el bmike 10.06.2013 - 15:43

Lea otras preguntas en las etiquetas