最新のファイルを「ServicesWebApp」命名規則に一致するファイル名のディレクトリに移動する必要があります。
例:同じ名前の5つのファイルを含むディレクトリがあります。
ServicesWebApp-1005.war created on 3/10/2016
ServicesWebApp-1004.war created on 3/09/2016
ServicesWebApp-1003.war created on 3/08/2016
ServicesWebApp-1002.war created on 3/07/2016
ServicesWebApp-1001.war created on 3/06/2016
最新のディレクトリを別のディレクトリに移動する必要があります。この場合はそうします。 ServicesWebApp-1005.warが2016年3月10日に作成されました。
答え1
タイムスタンプを信頼している場合は、オネライナーを使用することもできます。
mv $(ls -tr ServicesWebApp* | tail -1) /tmp/
またはファイル名に依存する場合。
mv $(ls ServicesWebApp* | sort -n | tail -1) /tmp/
答え2
次のことを試すこともできます。
mv $(find . -type f -name "ServicesWebApp*" -printf "%T@ %f\n" | sort -n | awk '{print $2}' | tail -1 ) /new/file/path/
答え3
tstamp=0
file=
for f in ServicesWebApp*
do
y=$(stat -c "%Y" "$f")
if [ $y -gt $tstamp ]
then
file="$f"
tstamp=$y
fi
done
echo cp "$file" /somewhere/else
答え4
単一行実行を試すことができますコマンドの置き換え
$ mv $(ls -t /location/path/ServicesWebApp* | head -n1) /to/new/destination/path
進む
$ ls -t /location/path/ServicesWebApp* | head -n1
/location/path/ServicesWebApp-1005.war
したがって、コマンドは次のように解釈する必要があります。
$ mv /location/path/ServicesWebApp-1005.war /to/new/destination/path