Для вашего варианта использования вам нужно только установить xauth
(и его зависимости) на удаленном компьютере, а также нужные вам приложения. работать вместе со своими зависимостями. Например, для Eclipse вам понадобится только JDK без головы и сам Eclipse.
Вам не нужна среда рабочего стола или даже оконный менеджер, вы в конечном итоге будете использовать их эквиваленты в своей локальной системе (машине, на которой запущен X-сервер).
Наконец, после множества проб и ошибок я нашел решение:
cd $file_path && fVar=$(find -type f -name 'file-[0-9].[0-9].[0-9]-SNAPSHOT.txt');
echo $fVar # output is like ./file-1.2.0-SNAPSHOT.txt
fT=${fVar:2} # removing first two characters'./'
echo "$fT" # output is file-1.2.0-SNAPSHOT.txt
выбор происходит через опцию -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
' {} {} \;
Допустим, ваш файл соответствует шаблону 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 может быть родительским каталогом, который должен содержать файл. Например,
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"