ファイルがこのパターン file-1.2.0-SNAPSHOT.txt に従っているとします。したがって、file-1.2.0-SNAPSHOT.txt のようになります。 または file-1.3.0-SNAPSHOT.txt または file-1.5.1-SNAPSHOT.txt など、次のように find コマンドを使用してファイルを取得できます:-
find . -type f -iname "*SNAPSHOT.txt"
SNAPSHOT.txt で終わるすべてのファイルが表示されます。 その後、それを使用して作業を行うことができます。
ドット(. ) 検索 ファイルを含む親ディレクトリにすることができます。のように
find ~/my_files/ -type f -iname "*SNAPSHOT.txt"
あなたがしようとしているのは、最後のバージョンだけをコピーすることだと思います。
#!/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"
選択は -name オプションによって行われ、アクションは -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
' {} {} \;