Вы можете l oop для всех файлов, и всякий раз, когда вы найдете файл, который старше file_example
, вы можете обновить file_example
:
for f in ./*; do
# Skip directories
[[ -d $f ]] && continue
# Compare and update
[[ $f -ot file_example ]] && touch file_example -r "$f"
done
Если вы хотите включить скрытые файлы, вы может либо l oop с for f in ./* ./.*
, либо сначала использовать shopt -s dotglob
.
Это может быть упаковано в функцию оболочки:
settooldest() {
local file=$1
local dir=$2
local f
for f in "$dir"/*; do
[[ -d $f ]] && continue
[[ $f -ot $file ]] && touch "$file" -r "$f"
done
}
, которая называется как
settooldest file_example path/to/dir