Czasami, podczas pracy z linią poleceń w Linuksie, możesz chcieć utworzyć nowy plik. Lub, może być czas, kiedy wymagana jest zmiana znaczników czasowych pliku. Cóż, istnieje narzędzie, które możesz wykorzystać w obu tych scenariuszach. Narzędziem, o którym mowa jest touch, a w tym poradniku zrozumiemy jego podstawową funkcjonalność na łatwych do zrozumienia przykładach.
Proszę zauważyć, że wszystkie przykłady, których będziemy używać zostały przetestowane na Ubuntu 16.04.
Linux Polecenie touch
Polecenie touch jest głównie używane do zmiany znaczników czasowych pliku, ale jeśli plik (którego nazwa jest przekazywana jako argument) nie istnieje, wtedy narzędzie go tworzy.
Poniżej znajduje się ogólna składnia polecenia:
touch ... FILE...
A oto jak strona man wyjaśnia to polecenie:
DESCRIPTION
Update the access and modification times of each FILE to the current
time. A FILE argument that does not exist is created empty, unless -c or -h
is supplied. A FILE argument string of - is handled specially and causes touch to
change the times of the file associated with standard output.
Następujące przykłady typu Q&A dadzą ci lepsze pojęcie o tym, jak działa to narzędzie.
Jak zmienić czas dostępu/modyfikacji używając komendy touch
To jest proste i całkiem nieskomplikowane. Weźmy istniejący plik jako przykład. Poniższy zrzut ekranu pokazuje czasy dostępu i modyfikacji dla pliku o nazwie 'apl.c.'
Jak można użyć komendy touch do zmiany czasów dostępu i modyfikacji pliku:
touch apl.c
Poniższy zrzut ekranu potwierdza zmianę tych znaczników czasu.
Jak zmienić tylko czas dostępu lub modyfikacji
Domyślnie, polecenie touch zmienia zarówno czas dostępu jak i modyfikacji pliku wejściowego. Jednakże, jeśli chcesz, możesz ograniczyć to zachowanie do jednego z tych timestampów. Oznacza to, że możesz zmienić albo czas dostępu, albo znacznik modyfikacji.
W przypadku, gdy chcesz zmienić tylko czas dostępu, użyj opcji wiersza poleceń -a.
touch -a
Podobnie, jeśli wymaganiem jest tylko zmiana czasu modyfikacji, użyj opcji wiersza poleceń -m.
touch -m
Jak sprawić, by touch używał czasów dostępu/modyfikacji istniejącego pliku
Jeśli chcesz, możesz również zmusić polecenie touch do skopiowania znaczników czasu dostępu i modyfikacji z pliku referencyjnego. Na przykład, załóżmy, że chcemy zmienić znaczniki czasu dla pliku 'apl.c'. Oto aktualne timestampy dla tego pliku:
A oto plik, którego chcemy, aby touch użył jako referencji:
Aby touch użył timestampów z 'apl' dla 'apl.c', będziesz musiał użyć opcji -r w linii poleceń w następujący sposób:
touch apl.c -r apl
Powyższy zrzut ekranu pokazuje, że znaczniki czasu modyfikacji i dostępu dla 'apl.c' są teraz takie same jak te dla 'apl.'
Jak utworzyć nowy plik używając touch
Tworzenie nowego pliku jest również bardzo proste. W rzeczywistości, dzieje się to automatycznie, jeśli nazwa pliku, którą podajesz jako argument do polecenia touch nie istnieje. Na przykład, aby utworzyć plik o nazwie 'newfile', wszystko co musisz zrobić, to uruchomić następujące polecenie touch:
touch newfile
Jak zmusić touch do nietworzenia nowych plików
Na wypadek, gdyby istniało ścisłe wymaganie, aby polecenie touch nie tworzyło nowych plików, możesz użyć opcji -c.
touch -c
Następujący zrzut ekranu pokazuje, że ponieważ 'newfile12′ nie istniał, a my użyliśmy opcji -c, polecenie touch nie utworzyło pliku.
Jak działa touch w przypadku dowiązań symbolicznych
Domyślnie, jeśli przekażesz nazwę pliku z dowiązaniem symbolicznym do polecenia touch, zmiana znaczników czasu dostępu i modyfikacji będzie dotyczyła oryginalnego pliku (tego, do którego odwołuje się dowiązanie symboliczne). Jednakże, narzędzie oferuje również opcję (-h), która pozwala na pominięcie tego zachowania.
Tutaj jak strona man wyjaśnia opcję -h:
-h, --no-dereference
affect each symbolic link instead of any referenced file (useful
only on systems that can change the timestamps of a symlink)
Więc, jeśli chcesz zmienić znaczniki czasu modyfikacji i dostępu dla dowiązania symbolicznego (a nie oryginalnego pliku), użyj polecenia touch w następujący sposób:
touch -h
Wnioski
Jak się pewnie zgodzisz, touch nie jest trudnym poleceniem do zrozumienia i użycia. Przykłady/opcje, które omówiliśmy w tym tutorialu powinny wystarczyć, aby rozpocząć pracę z tym narzędziem. Podczas gdy nowicjusze będą głównie używać tego narzędzia do tworzenia nowych plików, bardziej doświadczeni użytkownicy używają go także do wielu innych celów. Aby uzyskać więcej informacji na temat polecenia touch, odwiedź stronę man.