假设我有一个包含以下文件的目录:
one.txt、one.txt.tmp1、one.txt.tmp2、two.txt、two.txt.tmp1、two.txt.tmp2、...以及其他类似的内容
我想找到最新的(按时间戳)文件,假设它是two.txt,并且所有文件都是tmp 文件(two.tmp1 和two.tmp2),并将它们复制到已知目录。我知道如何复制最新的文件:
cp -p " ls -dtr1 "$SRC_DIR"/* | tail -1
" "$DEST_DIR"
但我需要所有相关文件。有人有什么想法吗?谢谢!
答案1
好吧,目标很明确。我在 bash 中快速破解了一些仅使用 bash 语法的东西
#!/usr/bin/env bash
latest_file ()
{
local file latest
local src="$1"
local dst="$2"
for file in "${src:-.}"/*;
do
[[ $file -nt $latest ]] && latest="$file";
done;
cp -v "${latest%.*}"* "$dst"
}
main() {
if (($# < 2)); then
printf '%s\n' "Usage: ${0##*/} [src] [dst]"
exit 1
else
latest_file "$@"
fi
}
main "$@"
latest
将此内容放入名为“无需扩展”的脚本中- 使其可执行
chmod u+x latest
- Run
./latest source destination
# source 是源目录,destination 是将文件复制到的目标目录 - 如果您不带参数运行它,因为
./latest
它会告诉您该怎么做