2017-01-06 4 views
0

Я пытаюсь прикоснуться к файлу (для датировки даты) с будущей датой, например: Текущая дата - $ date Пт Янв 6 03:59:55 EST 2017Ошибка Perl touch -t на будущую дату

touch -t 201702032359.59 /var/tmp/ME_FILE_END 

на проверку метки времени файла как -

$ ls -lrt /var/tmp/ME_FILE_END 

получает выход только с датой, а не вся временной меткой (hhmm.sec)

-rw-r--r-- 1 abcproc abc 0 Feb 3 2017 /var/tmp/ME_FILE_END 

Но на сегодняшний день с меньше или равен току дает правильный результат -

touch -t 201612010000.00 /var/tmp/ME_FILE_START 
ls -lrt /var/tmp/ME_FILE_START 
-rw-r--r-- 1 abcproc abc 0 Dec 1 00:00 /var/tmp/ME_FILE_START 

Может кто-то пожалуйста предложить почему это несоответствие?

+0

Как Perl участвует? – choroba

+0

Нигде я не думаю. Это простой вопрос unix. –

+1

Попробуйте прикоснуться к файлу с> 6 месяцев назад. Вы тоже увидите эту проблему. Форматы 'ls' датируются тем, что удобно читать на людях. Это еще одна причина, почему вы не должны разбирать вывод 'ls'. – Sobrique

ответ

1

Это только то, как ls отображает дату. Когда далеко не сейчас, время модификации не отображается.

Если вам нужны детали относительно последнего доступа/изменения/времени изменения, вы должны использовать stat.

stat /var/tmp/ME_FILE_END 

Вы увидите ожидаемый выход.

Например:

[10:29:41][email protected]:~$ touch -t 201702032359.59 /var/tmp/ME_FILE_END 
[10:29:43][email protected]:~$ ls -ltr /var/tmp/ME_FILE_END 
-rw-rw-r-- 1 dabi dabi 0 feb. 3 2017 /var/tmp/ME_FILE_END 
[10:29:47][email protected]:~$ stat /var/tmp/ME_FILE_END 
    File : '/var/tmp/ME_FILE_END' 
    Size : 0   Blocks : 0   I/O blocks : 4096 empty file 
Device : 803h/2051d  Inode : 5374373  Links : 1 
Access : (0664/-rw-rw-r--) UID : (1000/ dabi) GID : (1000/ dabi) 
Access : 2017-02-03 23:59:59.000000000 +0100 
Change : 2017-02-03 23:59:59.000000000 +0100 
Change : 2017-01-06 10:29:43.364630503 +0100 
    Birth : - 
+0

Это еще одна причина, почему вы не должны разбирать вывод 'ls' :). – Sobrique

+0

Действительно. это определенно ориентированный на человека инструмент. –

Смежные вопросы