The OpenNET Project / Index page

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



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

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

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

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

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

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

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

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

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

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

5. Сообщение от Аноним (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ообщить модератору
Родитель: #4 Ответы: #6

6. Сообщение от 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ообщить модератору
Родитель: #5 Ответы: #7

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #8, #9

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #11

9. Сообщение от 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 в мане шото не нашёл. Что оно такое?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #10

10. Сообщение от Аноним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ообщить модератору
Родитель: #9

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #12

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #13

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

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

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

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


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

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




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

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