我的目标是在目录中找到最新图像,并使用新名称复制它。
我尝试使用find命令,但是复制似乎不起作用
这就是将为我返回最近拍摄的照片的原因
if (hostingServer == "kestrel")
{
DoSomething();
}
else
{
DoSomethingElse();
}
然后我已经尝试过将其复制并称为lastimage.jpg
lastimage=$(find *.jpg -type f | xargs ls -ltr | tail -n 1)
echo $lastimage
我希望在我叫它的同一目录中看到lastimage=`find *.jpg -type f | xargs ls -ltr | tail -n 1` && cp $lastimage /path/to/location/lastimage.jpg
。
我的实际结果是
lastimage.jpg
答案 0 :(得分:0)
如果您有GNU coreutils,则可以在process substitution的帮助下实施以下解决方案:
while read -rd '' fname
do
atime=$(stat -c %X "$fname")
[ "${max:-0}" -le "$atime" ] && max="$atime" && la="$fname"
done < <(find . -type f -print0)
cp "${la}" "/path/to/destination/${la##*/}"
注意:带有-r
的{{1}}选项可防止解释转义序列。
答案 1 :(得分:0)
您可以将awk '{print $NF}'
添加到您的命令中,它将起作用。问题是ls -ltr
返回文件信息以及文件名,而您只需要文件名。 awk
命令将ls
的输出仅剪切到最后一列(文件名)。
lastimage=`find *.jpg -type f | xargs ls -ltr | awk '{print $NF}' | tail -n 1` && cp $lastimage /path/to/location/lastimage.jpg