Встановлення дати створення фай­лу за його назвою

  у розділі Технічні теми 

Скажімо є декілька директорій з фото, названих за датою, коли їх було відзнято (в прикладі — другий стовпець):

2011-01-03 00:00       2004-12-26-a
2011-01-03 00:00       2004-12-31
2011-01-03 00:00       2005-01-01
2011-01-03 00:00       2005-01-02

Це добре, що названо, але час створення директорії — сьогоднішній, 2011 року. Бо створив їх справді сьогодні, коли пересортовував фото.

Дрібниця, але неприємно. Благо, в Linux, існує простий метод встановити дату створення директорії взявши числа просто з її назви:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#!/bin/sh

# Лише директорії
list=`find . -type d`

for i in $list
do
    fileNameYear=`basename $i | cut -d- -f1`
    fileNameMonth=`basename $i | cut -d- -f2`
    fileNameDay=`basename $i | cut -d- -f3`

    echo $fileNameYear-$fileNameMonth-$fileNameDay

   # Змінити дату створення
    touch -m -d $fileNameYear-$fileNameMonth-$fileNameDay $i

done

Тепер, директорія з назвою 2005-01-01 датуою створення буде мати 01.01.05 і т.д.


Коментарі