Angenommen, Ihre Datei folgt diesem Muster file-1.2.0-SNAPSHOT.txt, sodass sie wie file-1.2.0-SNAPSHOT.txt aussehen kann oder file-1.3.0-SNAPSHOT.txt oder file-1.5.1-SNAPSHOT.txt usw. dann können Sie die Dateien mit dem Suchbefehl wie folgt abrufen:-
find . -type f -iname "*SNAPSHOT.txt"
Sie erhalten alle Dateien, die mit SNAPSHOT.txt enden und dann können Sie es für Ihre Arbeit verwenden.
Punkt(. ) in finden kann ein übergeordnetes Verzeichnis sein, das die Datei enthalten soll. Wie als
find ~/my_files/ -type f -iname "*SNAPSHOT.txt"
Ich denke, was Sie versuchen, ist, nur die letzte Version zu kopieren.
#!/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"
Die Auswahl erfolgt über die Option -name und die Aktion über die Option -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
' {} {} \;