„touch” jest podstawowym poleceniem Linuksa do tworzenia pustych plików lub zmiany znaczników czasowych plików (ostatnia data lub czas dostępu do pliku lub modyfikacji).

Komenda touch jest bardzo przydatna w codziennym użytkowaniu, jest przydatna do testowania przenoszenia plików poprzez tworzenie pustych plików do testowania, posiadanie zdolności do tworzenia fikcyjnych plików i robienia z nimi czegokolwiek chcemy może pomóc w każdej chwili na przykład do testowania wszelkich komend Linuksa, które oddziałują bezpośrednio z plikiem, dla komend takich jak wipe, srm, czy shred nie chcesz testować prawdziwych plików.

Gdy używamy komendy touch z nazwą istniejącego pliku, touch nie utworzy nowego pliku, ale uaktualni jego timestamps. Z drugiej strony zmiana znaczników czasowych byłaby przydatna, jeśli chcemy uniknąć sytuacji, w której ktoś wiedziałby, że uzyskaliśmy dostęp do pliku fałszując prawdziwą datę i czas, w którym naprawdę uzyskaliśmy do niego dostęp.

Pliki systemu Linux mają 3 znaczniki czasowe: atime, mtime i ctime.

atime: atime zawiera informacje o tym, kiedy zawartość pliku została odczytana za pomocą narzędzi lub poleceń wyświetlających zawartość pliku, takich jak less, nano, vi, vim, cat, grep, head, itp. Znacznik atime zmienia się i jest uaktualniany za każdym razem, gdy plik jest oglądany.

mtime: mtime pokazuje ostatnią modyfikację zawartości pliku, włączając jego nazwę, ale nie własność czy uprawnienia, tylko sam plik.

ctime: podobnie jak mtime ctime również pokazuje kiedy plik został zmodyfikowany, ale jest również uaktualniany, gdy własność, grupa lub uprawnienia dostępu do pliku zostały zmienione. Możemy edytować atime i mtime ale nie możemy edytować ctime, czas jest aktualizowany kiedy uprawnienia pliku są edytowane lub kiedy pliki są naprawdę czytane lub modyfikowane

Edycja znacznika czasu atime:

Zanim zobaczymy timestampy pliku stwórzmy go wpisując:

$ touch LinuxHintEmptyFile
$ ls
LinuxHintEmptyFile

Gdzie:

touch = tworzy pusty plik o nazwie LinuxHintEmptyFIle

ls = listuje pliki w katalogu

Teraz, aby zobaczyć znaczniki czasu pliku w terminalu wpisz

Komenda stat pokazuje uprawnienia dostępu, ostatni dostęp (atime), ostatnią modyfikację (mtime) i ostatnią zmianę (ctime).

Ponieważ data i czas utworzenia pliku są takie same, zmieńmy uprawnienia pliku, aby zobaczyć różnicę w wynikach stat:

Gdzie:

Chmod -777: usuwa wszystkie uprawnienia na pliku LinuxHintEmptyFile.

stat: pokazuje znaczniki czasu pliku

Na powyższym obrazku widzimy, że ctime (Zmiana) został zaktualizowany.

Teraz edytujmy plik atime na 1/2/99, wpisz:

Jeśli chcesz również zmienić datę dostępu wpisz:

Edycja znacznika czasu mtime:

Składnia do edycji mtime jest taka sama, do zmiany ctime na 1989.02.01 typ:

Teraz widać, że data modyfikacji została zaktualizowana, aby zaktualizować również jej czas podobnie postępujemy z atime typ:

Teraz stwórzmy drugi plik i użyjemy polecenia touch do skopiowania znaczników czasowych pliku na drugi:

Mamy plik accessed,modified and changed the 2019-05-15 00:02:14, aby skopiować timestampy pliku z pliku LinuxHintEmptyFile typu:

Jak widać teraz to oba pliki mają te same timestampy.

Jeśli chcemy zmienić wszystkie timestampy na aktualne wystarczy wpisać „touch”:

Jak widzisz drugi stat pokazuje zaktualizowane atime, mtime i ctime po komendzie touch.

Mam nadzieję, że ten tutorial był przydatny jako wprowadzenie do komendy touch, aby uzyskać więcej informacji na temat tej komendy wpisz „man touch”, jeśli masz jakiekolwiek pytania skontaktuj się z nami otwierając ticket na LinuxHint Support. Śledź LinuxHint aby uzyskać więcej wskazówek i aktualizacji dotyczących Linuksa.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *