The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"как написать этот код на BASH"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"как написать этот код на BASH"  +/
Сообщение от tukanenemail (ok), 13-Фев-20, 15:18 
Пройти в папке по всем файлам и записать на сам файл время создания файла.
С батом этот код вот так реализованно. Хотел бы что то на SHELL или Python. Спасибо за Внимание.

@echo off
for %%f in (*.txt) do (
for /f "tokens=1*" %%a in ('forfiles /m "%%f" /c "cmd /c echo @fdate @ftime"') do (
echo.>> "%%f"
echo Created: %%a - %%b >> "%%f"
)
for /f "tokens=1-5 delims=.: " %%j in ('dir /a-d /tc "%%f" ^| findstr /rc:"^[^ ]"') do echo Changed: %%j.%%k.%%l - %%m:%%n>> "%%f"
)
exit

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "как написать этот код на BASH"  +3 +/
Сообщение от Аноним (1), 13-Фев-20, 17:00 
мне кажется вы забыли указать сумму, которую готовы заплатить
Ответить | Правка | Наверх | Cообщить модератору

2. "как написать этот код на BASH"  +/
Сообщение от Pahanivo (ok), 13-Фев-20, 17:49 
Сессия подъехала.

Ответить | Правка | Наверх | Cообщить модератору

3. "как написать этот код на BASH"  +/
Сообщение от ACCA (ok), 13-Фев-20, 18:21 
> Пройти в папке по всем файлам и записать на сам файл время
> создания файла.

В общем случае - никак.

Есть способы для ufs2, zfs, ext4, btrfs, jfs.
Нет способа для xfs, да и для всяких vfat - они не хранят crtime.

Ответить | Правка | Наверх | Cообщить модератору

4. "как написать этот код на BASH"  +/
Сообщение от Аноним (4), 13-Фев-20, 19:24 
> Пройти в папке по всем файлам и записать на сам файл время
> создания файла.

for f in *.txt; do stat -c '%y' >> $f; done

Ответить | Правка | Наверх | Cообщить модератору

5. "как написать этот код на BASH"  +/
Сообщение от Аноним (4), 13-Фев-20, 19:26 
> for f in *.txt; do stat -c '%y' >> $f; done

Тут ошибка, забыт аргумент stat'а.
for f in *.txt; do stat -c '%y' $f >> $f; done

Ответить | Правка | Наверх | Cообщить модератору

6. "как написать этот код на BASH"  +/
Сообщение от tukanenemail (ok), 13-Фев-20, 22:06 
>> for f in *.txt; do stat -c '%y' >> $f; done
> Тут ошибка, забыт аргумент stat'а.
> for f in *.txt; do stat -c '%y' $f >> $f; done

Спасибо .  Прекрасно работает.


Ответить | Правка | Наверх | Cообщить модератору

7. "как написать этот код на BASH"  +1 +/
Сообщение от ACCA (ok), 13-Фев-20, 23:45 
>> for f in *.txt; do stat -c '%y' $f >> $f; done
> Спасибо .  Прекрасно работает.

Угу. Только возвращает неправильное время. %w != %y

Ответить | Правка | Наверх | Cообщить модератору

8. "как написать этот код на BASH"  +/
Сообщение от tukanenemail (ok), 14-Фев-20, 01:50 
>>> for f in *.txt; do stat -c '%y' $f >> $f; done
>> Спасибо .  Прекрасно работает.
> Угу. Только возвращает неправильное время. %w != %y

Я получаю то время когда создавались файлы. правильное время

Ответить | Правка | Наверх | Cообщить модератору

11. "как написать этот код на BASH"  +/
Сообщение от ACCA (ok), 14-Фев-20, 21:50 
> Я получаю то время когда создавались файлы. правильное время

Ты получаешь время, когда изменялись файлы. Оно может совпадать со временем создания, если после создания файлы не трогали.

Короче, %y - это НЕ время создания файла.

Ответить | Правка | Наверх | Cообщить модератору

12. "как написать этот код на BASH"  +/
Сообщение от tukanenemail (ok), 14-Фев-20, 22:51 
>> Я получаю то время когда создавались файлы. правильное время
> Ты получаешь время, когда изменялись файлы. Оно может совпадать со временем создания,
> если после создания файлы не трогали.
> Короче, %y - это НЕ время создания файла.

A мне это и нужно.  Я же script запускаю.. и получаю время создания файла... Второй раз уже не
запускаю. мне нужно первый ответ. что я и получаю.

Ответить | Правка | Наверх | Cообщить модератору

13. "как написать этот код на BASH"  +/
Сообщение от ACCA (ok), 15-Фев-20, 03:47 
> A мне это и нужно.  Я же script запускаю.. и получаю
> время создания файла... Второй раз уже не

Нет, не получаешь. Почитай про разницу между
    crtime
    ctime
    mtime
    atime

У тебя задача - получить crtime. Ты напечатал mtime и врёшь, что это тебе и нужно.

Ответить | Правка | Наверх | Cообщить модератору

9. "как написать этот код на BASH"  +/
Сообщение от DiabloPC (ok), 14-Фев-20, 16:10 
>>> for f in *.txt; do stat -c '%y' $f >> $f; done
>> Спасибо .  Прекрасно работает.
> Угу. Только возвращает неправильное время. %w != %y

Таки да: %y Time of last modification. А вот %w в мане шото не нашёл. Что оно такое?

Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

10. "как написать этот код на BASH"  +/
Сообщение от Аноним84701 (ok), 14-Фев-20, 17:39 

> Таки да: %y Time of last modification. А вот %w в мане
> шото не нашёл. Что оно такое?

Свежая модно-молодежность (ЕМНИП, всего 10 лет как завезли) ;)
> %w - Time of file birth, or ‘-’ if unknown
> %W - Time of file birth as seconds since Epoch, or ‘0’

Это если мы о stat из coreutils.
В бздшных, для кастомного формата stat, вместо *кхе-кхе* интуитивно понятной *кхе* опции "-c"  "%y" (от yodified) или "%w" (wirth) нужно задавать какой-то  "-f"  "%m" или "%B" ;)

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру