Witaj na Forum Linuxiarzy
Zanim zalogujesz się, by pisać na naszym forum, zapoznaj się z kilkoma zasadami savoir-vivre'u w dziale Administracja.
Wiadomości z problemami zamieszczone w wątku "Przywitaj się" oraz wszelkie reklamy na naszym forum będą usuwane.

zmiana atrybutów pliku (data czas utworzenia modyfikacji)

Zaczęty przez 11sideways, Wrzesień 22, 2019, 07:02:08 PM

Poprzedni wątek - Następny wątek

11sideways

Hej. Poszukuję i nie znalazłem w internecie alternatywy dla windowsowego Attribute Changer - programu, który wchłania się w windowsową powłokę (nieistotne) i pozwala na zmianę dokładnej daty i godziny atrybutów takich jak utworzenie/modyfikacja/ostatnie użycie pliku. Czy istnieje jakiekolwiek alternatywne narzędzie na linuxa, bądź biblioteki do winetricks, które umożliwią działanie wyżej wymienionego w explorerer.exe q4wine?

TataPingu

#1
Czy istnieje coś pod wine, tego nie wiem, ale pod linuksem zrobisz to komendą "touch":

touch –time=modify przykład.txt

w tym przypadku plikowi przykład.txt "przyporządkujesz" aktualną datę i czas.

Chcesz zrobić to z inną datą (i ew. czasem) robisz to zgodnie z poniższym algorytmem:

touch -t RRRRMMDDggmm.ss przykład.txt

np.:
touch -t 201609182024.20 przykład.txt

-> plik przykład.txt przyporządkowany jest dacie 18.09.16 i godzinie 20:24.

11sideways

tak, to udało mi się znaleźć w sieci ale zmienia tylko sekcje DOSTĘP i MODYFIKACJA, w momencie zmiany tych parametrów przybija bieżący timestamp dla sekcji ZMIANA, a sekcja UTWORZENIE jak była pusta, tak pusta pozostaje. Potrzebuję wszystkie te sekcje/parametry ustawiać jednakowe, ale takie, jakie chcę, bądź przynajmniej bieżące.
nie wiem czy to ma znaczenie, ale raczej nie - system ubuntu 19.04

TataPingu


11sideways

Więc wychodzi na to, że nie ma możliwości zmiany/dodania znacznika UTWORZONY dla pliku. Być może linuxy nie obsługują tego atrybutu? szkoda :(

TataPingu

Cytat: 11sideways w Wrzesień 23, 2019, 01:01:22 PM
Więc wychodzi na to, że nie ma możliwości zmiany znacznika UTWORZONY dla pliku. Być może linuxy nie obsługują tego atrybutu?

No jak to nie !
- pobaw się tym, co już raz podałem:
touch -t RRRRMMDDggmm.ss przykład.txt

11sideways

Tato, bawiłem się. Touch nie dotyka czasu utworzenia, naprawdę. W ogóle pliki sprawdzane komendą stat pokazują ten atrybut jako pusty, jakby w ogóle linux tego nie obsługiwał. Touch sytuacji nie zmienia, pod windowsem sprawdzane we właściwościach utworzenie pozostaje takie jakie było pierwotnie.

Fibogacci

#7
Cytat: 11sideways w Wrzesień 24, 2019, 12:33:31 AM
Tato, bawiłem się. Touch nie dotyka czasu utworzenia, naprawdę. W ogóle pliki sprawdzane komendą stat pokazują ten atrybut jako pusty, jakby w ogóle linux tego nie obsługiwał. Touch sytuacji nie zmienia, pod windowsem sprawdzane we właściwościach utworzenie pozostaje takie jakie było pierwotnie.

Zaciekawił mnie temat.

Może to będzie przydatne - jak uzyskać informację o dacie/czasie utworzenia pliku w Linuksie. Z tego co zrozumiałem, działa przy systemie plików EXT4.

https://www.tecmint.com/debugfs-command-show-file-creation-time-in-linux/

Nie wiem (jeszcze), jak zmienić tę datę, ale być może (zapewne) jest to możliwe.

Być może jeszcze ten wątek będzie przydatny:
https://unix.stackexchange.com/questions/50177/birth-is-empty-on-ext4

(warto zwrócić uwagę na coś takiego, jak statx)

TataPingu

#8
Cytat: Fibogacci w Wrzesień 24, 2019, 01:23:01 AM
Może to będzie przydatne - jak uzyskać informację o dacie/czasie utworzenia pliku w Linuksie. Z tego co zrozumiałem, działa przy systemie plików EXT4.

Aaaa, tak, o ile dobrze pamiętam, to "touch" działa tylko na EXT2, EXT3, i EXT4...
- przed wysłaniem poprzedniego posta sprawdziłem dla testu jeden z plików i "zadziałało" bez problemu...

Na marginesie dodam, że z linuksem pracowałem od początku na, wpierw na EXT2, poprzez EXT3 i obecnie EXT4.
Innych formatów używałem tylko w celach testowych...

ERRATA ;)
Poprzednio użyłem "touch" tylko do zmiany daty stworzenia i to nastąpiło, teraz pofatygowałem się zaedytować sam plik i faktycznie, data (czas) mimowolnie się "uaktualniły"...
- poprzedni, ustalony przy pomocy "touch" czas automatycznie się zmienił....

Chmmm..., nigdy nie miałem takiej potrzeby analizować tego fenomenu...
- Fibogacci ma rację, to jest ciekawe...

Fibogacci

Cytat: TataPingu w Wrzesień 24, 2019, 08:13:51 AM

Aaaa, tak, o ile dobrze pamiętam, to "touch" działa tylko na EXT2, EXT3, i EXT4...
- przed wysłaniem poprzedniego posta sprawdziłem dla testu jeden z plików i "zadziałało" bez problemu...

Na marginesie dodam, że z linuksem pracowałem od początku na, wpierw na EXT2, poprzez EXT3 i obecnie EXT4.
Innych formatów używałem tylko w celach testowych...

ERRATA ;)
Poprzednio użyłem "touch" tylko do zmiany daty stworzenia i to nastąpiło, teraz pofatygowałem się zaedytować sam plik i faktycznie, data (czas) mimowolnie się "uaktualniły"...
- poprzedni, ustalony przy pomocy "touch" czas automatycznie się zmienił....

Chmmm..., nigdy nie miałem takiej potrzeby analizować tego fenomenu...
- Fibogacci ma rację, to jest ciekawe...

Polecenie touch nie 'dotyka' crtime czyli 'creation time'. Wynik debugfs pokazuje coś takiego:

User:  1000   Group:  1000   Project:     0   Size: 8
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 8
Fragment:  Address: 0    Number: 0    Size: 0
ctime: 0x5d89525c:961b4928 -- Tue Sep 24 01:16:44 2019
atime: 0x5d89523a:c5c4dc70 -- Tue Sep 24 01:16:10 2019
mtime: 0x5d89525c:961b4928 -- Tue Sep 24 01:16:44 2019
crtime: 0x5d89523a:c5c4dc70 -- Tue Sep 24 01:16:10 2019
Size of extra inode fields: 32
Inode checksum: 0x9cebde39
EXTENTS:
(0):3219238


czyli

ctime - change time (zmiana)
atime - access time (dostęp)
mtime - modification time (modyfikacja)
crtime - creation time (utworzenie)

stat pokazuje jedynie:

stat test123.txt
  Plik: test123.txt
  rozmiar: 8            bloków: 8          bloki I/O: 4096   zwykły plik
Urządzenie: 805h/2053d   inody: 795313      dowiązań: 1
Dostęp: (0644/-rw-r--r--)  Uid: ( 1000/   filip)   Gid: ( 1000/   filip)
Dostęp:      2019-09-24 01:16:10.829503260 +0200
Modyfikacja: 2019-09-24 01:16:44.629592650 +0200
Zmiana:      2019-09-24 01:16:44.629592650 +0200
Utworzenie:  -


Ale to wszystko w systemie plików EXT (linuksowym/uniksowym).

Zmienianie daty utworzenia pliku przy systemie plików z Windows z poziomu Linuksa - na razie nie znalazłem takiej informacji jak to zrobić, ale zbyt głęboko nie szukałem póki co.

11sideways

dokładnie jest to wszystko jak powyżej. można zmienić z osobna ctime, atime, mtime, ale właśnie ten crtime widoczny tylko pod windą jest niemożliwy do edycji pod linuxem. raz, że to ciekawe, a dwa, że smutne. jestem przeciwnikiem windowsa, ale to już nie pierwsza potrzeba, której linux nie zaspakaja... po cichu liczę, że jeszcze ktoś wyczerpie ten temat i pokaże rozwiązanie.

TataPingu

Ubuntu (nie wiem, czy inne dystra to już przejęły) oferował dodatkowe możliwości manipulowania tymi wartościami.
To paczka e2fsprogs, a dokładnie chodzi o  chattr i lsattr

Na przykład:
sudo chattr +i PLIK.TXT

zablokuje jakiekolwiek zmiany pliku.

Parametrów jest o wiele więcej (np. zablokowanie zmiany czasu stworzenia pliku), ale czy to spełni Twoje oczekiwania, tego nie wiem...
- popróbuj...

Fibogacci

#12
Cytat: 11sideways w Wrzesień 24, 2019, 07:24:59 PM
dokładnie jest to wszystko jak powyżej. można zmienić z osobna ctime, atime, mtime, ale właśnie ten crtime widoczny tylko pod windą jest niemożliwy do edycji pod linuxem. raz, że to ciekawe, a dwa, że smutne. jestem przeciwnikiem windowsa, ale to już nie pierwsza potrzeba, której linux nie zaspakaja... po cichu liczę, że jeszcze ktoś wyczerpie ten temat i pokaże rozwiązanie.

Z moich doświadczeń z Linuksem, to w większości przypadków wszystko (prawie wszystko) da się zrobić, tylko trzeba znaleźć informację/wiedzieć jak to zrobić, wykonać odpowiednią ilość prób i działań (czasem bardzo dużo, ucząc się na próbach i błędach) i mieć odpowiednią motywację, aby osiągnąć rezultat/y.

W moim przypadku, większość problemów i potrzeb, które sobie wymyśliłem, ktoś już kiedyś przede mną też już miał i znalazł rozwiązanie. Te rozwiązania czasem znajdują się łatwiej, czasem trudniej, ale są. Najczęściej po angielsku. W paru przypadkach rozwiązanie trzeba sobie przygotować/stworzyć samemu, jeśli wiedza i umiejętności pozwalają na to.

Co do NTFS i czasu to np. tu jest wątek:
https://unix.stackexchange.com/questions/87265/how-do-i-get-the-creation-date-of-a-file-on-an-ntfs-logical-volume

Nie wgłębiałem się w to, bo nie mam takiej potrzeby, ale zakładam, że da się to zrobić bardziej lub mniej spod Linuksa.

Podsumowując, z dużą dozą prawdopodobieństwa Linux może zaspokoić większość potrzeb, tylko trzeba dotrzeć do wiedzy, jak to zrobić. Przy niszowych potrzebach dotarcie do wiedzy bywa dłuższe, ale najważniejszy wniosek jest taki - powinno się dać.

PS. Twoje pliki, które chcesz modyfikować są w jakim systemie plików (na jakiej partycji)? NTFS, FAT32, exFAT? To może mieć znaczenie przy szukaniu rozwiązania.

11sideways

Zgadza się, po polsku nawet rozwiązań nie szukam, tylko po angielsku. Po polsku tylko pytam Was.

System plików... Plik któremu próbowałem dla testu zmienić atrybuty, znajdował się normalnie na twardzielu w home więc ext, ale nie wiem czy dobrze rozumiem - pochodzenie pliku nie ma znaczenia, tylko miejsce w którym aktualnie się znajduje? Jeśli tak, to nie ma konieczności by pliki znajdowały się na ext, mogę to robić na nośniku wymiennym fat lub ntfs. Sprawdzę to, bo to może być rozwiązanie.

Dzięki TataPingu za sugestie, sprawdzę również.

To prawda że na większość potrzeb znajdzie się rozwiązanie bo to cecha charakterystyczna tych systemów, jednak nie tylko znalezienie rozwiązań jest trudne bądź niewykonalne - często nawet znalezione rozwiązanie nie jest stabilne. Albo nie jest "wieloplatformowe". Tworzenie samemu wykracza delikatnie poza możliwości mojego rozumku. Od systemu operacyjnego mam też jedno oczekiwanie, którego żaden linux nie spełni, a próby wdrażania internetowych sugestii zajelyby kilka miesięcy z wątpliwym skutkiem, podczas gdy w windzie wystarczy 15 klików...  siódema zaraz kończy swój żywot, więc jak dla mnie microsoft przestaje istnieć. A jako perfekcjonista doznaje bólu przy bliskich kontaktach z linuxem. Ale idę w to bo 1. Muszę, 2. Jestem świadomy dobrodziejstw.

TataPingu

Cytat: 11sideways w Wrzesień 25, 2019, 05:13:48 AM
Ale idę w to bo 1. Muszę, 2. Jestem świadomy dobrodziejstw.

Na wstępie trochę informacji, poniżej wszystko o EXT... (na "chłopski rozum"):
https://www.thegeekstuff.com/2011/05/ext2-ext3-ext4/

a tutaj, trochę bliżej o chattr i innych:
http://www.softpanorama.org/Internals/Unix_filesystems/Ext/ext2_attributes.shtml

Powiem szczerze, że nigdy nie zajmowałem się głębiej tym tematem...
- nigdy nie miałem takiej potrzeby...

Przypuszczam, iż większość "linuksiarzy", szczególnie twórców, miało podobnie.
Linuks, jego funkcjonalność i zakres możliwości, w praktyce, wynika z potrzeb i do tego tworzy się oprogramowanie z odpowiednimi funkcjami i możliwościami...

Chmmm..., co się tyczy tego problemu, moim zdaniem, ale podkreślam, że to moje pierwsze "odczucie", bo nie zagłębiałem się w temat, to prawdopodobnie "przeszkodą" w analogicznym, jak pod windą (FAT, NTFS), zapisie informacji dla plików/katalogów jest prowadzony "journaling"....
- informacje o plikach/katalogach prowadzone są w tablicach-journalach w jednym miejscu HDD, a same informacje w innym.
Konstrukcja i sposób zapisu tych journali przystosowana jest bardziej pod kątem stabilności/niezawodności/pewności itp zapisu danych, niż pod kątem możliwości "kontroli" tych danych.

Fakt, zauważyłeś ciekawą rzecz, ale właściwie, w praktyce, czy jest to tak bardzo istotne w prawidłowym funkcjonowaniu OSa, to mam wątpliwości...
- bo właściwie do jakich celów ?

Mogę sobie wyobrazić, no, powiedzmy..., do manipulowania plików/katalogów jakiegoś oprogramowania "shareware" ((darmowego np. na 30 dni). OK, wówczas można, teoretycznie, używać go ciągle.
Ewentualnie, przy jakimś księgowym oprogramowaniu, można by tak manipulować informacje o plikach, że można by "prostować" (nie chcę użyć określenia o odwrotnym znaczeniu) pewne fakty.
Ba, w skrajnych przypadkach, takimi manipulacjami, teoretycznie, można by nawet dopuszczać się poważnych przestępstw (np. "podsunąć" komuś zdjęcia pornografii dziecięcej z "odpowiednią datą")

Jedno jest pewne, możliwości takich zmian i takiego manipulowania informacjami w większości przypadków równałoby się z wykroczeniami przeciwko prawu.

A co do "przymusu" przejścia na linux..., chmm..., weź pod uwagę, że PCtet, to nic innego, jak tylko bardziej skomplokowane narzędzie...
- czy nowa/inna wersja samochodu Cię przeraża ?

Microsoft z tym swoim badziewiem to firma prywatna. Nastawiona na maksymalizację zysków...
- oczywiście to Twój wybór, ale czy chcesz całe życie utrzymywać tę zgraję, która Ci podsuwa "darmowe koraliki" ?
Nawet, gdyby linuks wiązał się z pewnymi niedogodnościami, czy brakami, to tak samo dobre narzędzie, tylko, że darmowe...
- tworzone przez nas, tj. społeczeństwo !

Zobacz najnowsze wiadomości na forum