Řekněme, že váš soubor se řídí tímto vzorem soubor-1.2.0-SNAPSHOT.txt, takže může být jako soubor-1.2.0-SNAPSHOT.txt nebo soubor-1.3.0-SNAPSHOT.txt nebo soubor-1.5.1-SNAPSHOT.txt atd. pak můžete získat soubory pomocí příkazu find, jako je tento :-
find . -type f -iname "*SNAPSHOT.txt"
Poskytne vám všechny soubory, které končí na SNAPSHOT.txt a pak jej můžete použít ke své práci.
Tečka(. ) v najít může být nadřazený adresář, který by měl soubor obsahovat. Jako
find ~/my_files/ -type f -iname "*SNAPSHOT.txt"
Myslím, že se snažíte zkopírovat pouze poslední verzi.
#!/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"
výběr se provádí pomocí volby -name a akce pomocí volby -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
' {} {} \;