[mdk-re] File creation time in Linux & others

Henri Bourbon =?iso-8859-1?q?npecca_=CE=C1_yahoo=2Ecom?=
Вт Сен 4 15:27:13 MSD 2001


Tuesday, September 04, 2001, 12:29:54, Vladimir Karpinsky wrote:

>>> можно ли как-нибудь средствами shell, может быть perl(?), в имя файла
>>> вставить дату его создания?

HB>> Дата создания файла? А такое вообще в Linux бывает?

> Я имею ввиду ту дату, которую показывает ls -l, ее вероятно правильнее
> называть датой последней модификации, но в моем случае это не имеет
> значения, т.к. файл не меняется после его создания.

> Чуть подробнее опишу задачу: есть файлы данных, у которых дата
> создания/модификации соответствует первому отсчету, хочется эту дату
> вытащить в имя файла, дабы облегчить себе задачу поиска нужного.

Вы,  действительно, лишь *чуть* подробнее описали задачу :) Лучше всего было
бы привести 1 пример, тогда все было бы понятно.
Как я понял, вам нужно следующее: имеем файл foo, дата модификации к-рого --
1  янв  1990.  Нужно переименовать его в "foo.1 янв 1990" или что-то в таком
духе. Делается это несложно:

$ ls
data1  data2  data3  data4
$ ls -l
total 66
-rw-r--r--   1 0        everyone    17168 Jan 12  1997 data1
-rw-r--r--   1 0        everyone    32768 Dec 23  1998 data2
-r--r--r--   1 0        everyone    61952 Dec  3  1999 data3
-rw-r--r--   1 0        everyone    18944 Feb  2  2001 data4
$ add_mtime_to_filename *
$ ls
data1.Sun_Jan_12_1997  data3.Fri_Dec_03_1999
data2.Wed_Dec_23_1998  data4.Fri_Feb_02_2001

Что и требовалось доказать. А мини-скриптик add_mtime_to_filename таков:

$ cat /Tools/add_mtime_to_filename
#!sh

FORMAT="%a_%b_%d_%Y" # Формат даты изменить по вкусу

for file do
        mv "$file" "$file.`date --reference=$file +"$FORMAT"`"
done

-- 
HB






Подробная информация о списке рассылки community