19 lines
677 B
Bash
Executable File
19 lines
677 B
Bash
Executable File
#!/bin/sh -e
|
|
# Add the modification date in front of the filename
|
|
test $# -eq 0 && echo "predate [-s] [newname] <files...>" && exit 2
|
|
IFS='\n'
|
|
test "$1" = -s && short=true && shift
|
|
# Whether to change the filename suffix after the date
|
|
test ! -f "$1" && rename=true && name=$1 && shift || rename=false
|
|
|
|
for file
|
|
do mv --verbose --interactive "$file" \
|
|
"$(latest "$file" | head -2 | tail -1 |
|
|
cut -c$(test "$short" && echo "3,4,6,7,9,10" || echo "-10"))$(
|
|
if $rename
|
|
then echo "$(test "$name" && echo "_$name").${file##*.}"
|
|
else echo "_$file" | sed 's/^_2\?\([0-9]\{2,3\}\)-\([0-9]\{2\}\)\(-[0-9]\{2\}\)\?_\?/_/'
|
|
fi)"
|
|
done
|
|
# stat --format %y "$file" | cut -d' ' -f1
|