Supponiamo che il tuo file segua questo modello file-1.2.0-SNAPSHOT.txt quindi può essere come file-1.2.0-SNAPSHOT.txt o file-1.3.0-SNAPSHOT.txt o file-1.5.1-SNAPSHOT.txt ecc. allora puoi ottenere i file usando il comando find come questo :-
find . -type f -iname "*SNAPSHOT.txt"
Ti darà tutti i file che terminano con SNAPSHOT.txt e poi puoi usarlo per fare il tuo lavoro.
Punto(. ) in trova può essere una directory padre che dovrebbe contenere il file. Come
find ~/my_files/ -type f -iname "*SNAPSHOT.txt"
Penso che quello che stai cercando di fare sia copiare solo l'ultima versione.
#!/bin/bash
oldlocation="/file_path/"
newlocation="/new_path/"
cd "$oldlocation"
#Get the last version
file="$(ls *SNAPSHOT.txt | sort -V | tail -n1)"
cp -v "$file" "$newlocation"
echo "Everything is ok"
la selezione avviene tramite l'opzione -name e l'azione tramite l'opzione -exec.
find . -type f -name '*-[0-9].[0-9].[0-9]-SNAPSHOT.txt' -exec sh -c '
file=$1
# do what you want with $file as many times as you want
' {} {} \;