Как я могу увеличить дату создания файла до имени файла?

Я создал серию изображений с временным интервалом и назвал их последовательно {0000..9999}.jpg

Это не очень удобно для просмотра всего набора, так как сложнее сказать, когда данное изображение было взято из его имя файла. Я хотел бы переименовать их, чтобы их имена содержали дату их создания, например:

0000.jpg → 20140815-142800-0000.jpg
0001.jpg → 20140815-142800-0001.jpg
0002.jpg → 20140815-142800-0002.jpg

. Важно сохранить исходные элементы имени файла, и точное форматирование даты не так важно, если это имя файла - безопасно и легко понять. Мой пример выше вставляет его спереди так, чтобы он сортировал по дате.

Если вы хотите проверить жгут проводов файлов, следующее создаст 10 файлов с возрастающим временем создания:

[ f2]
1
задан 15 August 2014 в 20:10

2 ответа

И что-то bash-based для простых имен файлов (например, пример):

$ for f in *; do mv "$f" "$(date -d@$(stat --printf='%Y' "$f") +%Y%m%d%H%M%S)-$f"; done
$ ls -l
total 0
-rw-rw-r-- 1 oli oli 0 Aug 15 00:00 20140815000000-0000.jpg
-rw-rw-r-- 1 oli oli 0 Aug 15 01:01 20140815010101-0001.jpg
-rw-rw-r-- 1 oli oli 0 Aug 15 02:02 20140815020202-0002.jpg
1
ответ дан 24 May 2018 в 04:36

Вот что я переделал, чтобы понять, что происходит. Спасибо.

for file in *.log; 
    do
        created=$(stat -f "%m" $file)
        dateHat=$(date -r $created "+%F" )
        sizeBytes=$(stat -f "%z" $file)
        mv $file $dateHat"_size_"$sizeBytes"_"$file
    done
1
ответ дан 24 May 2018 в 04:36

Другие вопросы по тегам:

Похожие вопросы: