LINUX.ORG.RU

Скрипт bash

 , ,


0

3

Приветствую!

Как реализовать такое дело… Имеется куча текстовых файлов, примерно 2000. Нужно их «обработать» )) Нужно присвоить дату и время создания из будущего, допустим «05.02.2021 20:20». И самое главное, нужно после каждого третьего файла изменять дату создания увеличив ее на 5 мин

На powershell

[datetime]$initTime = "02.03.2021 10:00"
$files = dir "C:\temp\creationtime\*.call" |sort name
$c = 1

foreach ($file in $files) {
$file.CreationTime = "$initTime"
$c++
    if ($c -gt 3) {
    $initTime = $initTime.AddMinutes(3)
    $c = 1
    }
}

Как грамотно реализовать такое же на bash? файлы могут быть рядом со скриптом

Ответ на: комментарий от chenbr0

как говаривал граф Суворов – до первой звезды нельзя

pohepi
()
Ответ на: комментарий от anonymous

а разве там есть что то типа glob получение списка всех файлов каталога?

не не не ненаглядный васек не нужно.

XoFfiCEr ★★☆☆
()
Последнее исправление: XoFfiCEr (всего исправлений: 1)

увеличив ее на 5 мин

$initTime.AddMinutes(3)

$WindowsMinute = 5/3
$LinuxMinute = 3/5
anonymous
()

тока $ touch -a -m -t получается есть

likvidator22
() автор топика
Ответ на: комментарий от anonymous

К примеру ext4 не хранит.

 > lsblk /dev/sda1 -f | sls sda1

sda1 ext4         80eb8548-e931-485b-9404-8a9569718f87   94.3G     9% /

 > gi /etc/fstab | fl *time

CreationTime   : 17.01.2021 10:14:05
LastAccessTime : 30.01.2021 10:50:50
LastWriteTime  : 17.01.2021 10:14:05
anonymous
()

по теме: примерно как и на powershell. просто команды переведи.

cast Korchevatel: бери SR300E (или другую из серии). стоит ненамного больше 200$, но по играбельности и звуку это лучшее что ты можешь получить в этом бюджете. И новая будет. И звучит очень неплохо. Б/у брать не имея опыта так себе затея.

anonymous
()
Ответ на: комментарий от anonymous

хотя…. дороговато. Но может найдешь такую бу не убитую.

anonymous
()

Это как в магазине завтрашнюю дату пишут?

anonymous
()
Ответ на: комментарий от anonymous

К примеру ext4 не хранит.

Как раз хранит. Btrfs тоже. XFS — нет.

anonymous
()

Уточни про время создания файла. Не все файловые системы его хранят. Ext4 уже умеет ($ stat file), но как уже сказано, разумными средствами изменить его трудно. Если же имеется ввиду время доступа, модификации и изменения, то можно так:

#!/bin/bash
timedatectl set-ntp 0
Data='2021-02-05 20:20:00'
Time=$(date --date="${Data} UTC" +%s)
Count=1
for File in *; do
    date -s "@${Time}" > /dev/null
    touch "$File"
    echo "$(stat "$File")"
    ((++Count))
    [[ "$Count" = 4 ]] && Count=1 && ((Time+=300)) 
done
timedatectl set-ntp 1

Для изменения именно даты создания решение есть, но оно весьма костыльно-ресурсоёмкое:

#!/bin/bash
timedatectl set-ntp 0
NameNewFile="$(cat /proc/sys/kernel/random/uuid)"
Data='2021-02-05 20:20:00'
Time=$(date --date="${Data} UTC" +%s)
Count=1
for File in *; do
    date -s "@${Time}" > /dev/null
    cp "$File" "$NameNewFile"
    rm -f "$File"
    mv "$NameNewFile" "$File"
    echo "$(stat "$File")"
    ((++Count))
    [[ "$Count" = 4 ]] && Count=1 && ((Time+=300)) 
done
timedatectl set-ntp 1
Запускать из директории с файлами через sudo.

basarga
()
Последнее исправление: basarga (всего исправлений: 6)
Ответ на: комментарий от XoFfiCEr

Zhbert, torvn77

Записывать нужно Ventoy. Создается мультизагрузочная флешка с Grub, а на нее простым драгндропом кидается iso. Можно несколько. Все. И образы остаются целыми.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.