Polecenie date znajduje się w powłoce Bash, która jest domyślną powłoką w większości dystrybucji Linuksa, a nawet w systemie MacOS. Ten samouczek pokazuje, jak opanować datę w wierszu poleceń i jak używać jej w skryptach powłoki, aby zrobić coś więcej niż tylko wydrukować godzinę.

Uruchom polecenie date, aby zobaczyć te informacje. Wydrukuj aktualną datę i godzinę dla swojej strefy czasowej:

Data

Domyślny format wygląda trochę śmiesznie. Dlaczego rok nie jest drukowany po miesiącu i dniu, zamiast być oznaczony na końcu, za strefą czasową? Nie bój się: jeśli chcesz kontrolować format wyjścia, data zapewnia to w pikach. Istnieje ponad 40 opcji, które możesz przekazać do tej pory, aby sformatować dane wyjściowe dokładnie tak, jak chcesz.

Aby użyć dowolnej opcji, wpisz datę, spację, znak plus + oraz opcję zawierającą wiodący znak procentu. Opcja %c (data i godzina w formacie locale) powoduje, że data i godzina są drukowane w znormalizowanym formacie skojarzonym z twoimi ustawieniami regionalnymi. Twoje ustawienia regionalne są określane na podstawie informacji geograficznych i kulturowych podanych podczas instalacji systemu operacyjnego. Miejsce rządzi takimi rzeczami, jak symbol waluty, rozmiar papieru, strefa czasowa i inne normy kulturowe.

data +%c

Rok teraz pojawia się w produkcji w bardziej naturalnej pozycji.

Do tej pory możesz przekazać wiele opcji jednocześnie. Sekwencja opcji nazywana jest ciągiem formatu. Aby zobaczyć nazwę dnia (%A), dzień miesiąca (%d) i nazwę miesiąca (%B), użyj tego polecenia:

data +%A%d%B

To zadziałało, ale jest brzydkie. Nie ma problemu, możemy dołączyć spacje, o ile cały ciąg formatujący umieścisz w cudzysłowie. Zauważ, że + wychodzi poza cudzysłowy.

data +”%A%d%B”

Możesz dodać tekst do ciągu formatującego, na przykład:

data +”Dzisiaj jest: %A %d %B”

Przewijanie daty w górę iw dół w poszukiwaniu żądanej opcji wkrótce staje się nużące. Podzieliliśmy opcje na grupy, aby ułatwić Ci poruszanie się.

Opcje wyświetlania daty i godziny

% c: drukuje datę i godzinę w formacie Twojego regionu, łącznie ze strefą czasową.

Opcje wyświetlania daty

%D: drukuje datę w formacie mm/dd/rr.
%F: drukuje datę w formacie rrrr-mm-dd.
% x: drukuje datę w formacie twojego języka.

Opcje wyświetlania dnia

%a: Drukuje nazwę dnia skróconą jako pon., wt., śr. itp.
%A: Drukuje pełną nazwę dnia, poniedziałku, wtorku, środy itd.
%u: drukuje numer dnia tygodnia, gdzie poniedziałek = 1, wtorek = 2, środa = 3 itd.
%w: drukuje numer dnia tygodnia, gdzie niedziela = 0, poniedziałek = 1, wtorek = 2 itd.
%d: Drukuje dzień miesiąca z wiodącym zerem (01, 02… 09), jeśli to konieczne.
% e: Drukuje dzień miesiąca ze spacją wiodącą (’1′, '2’… '9′), jeśli to konieczne. Zauważ, że apostrofy nie są drukowane.
%j: Drukuje dzień roku, w razie potrzeby z maksymalnie dwoma wiodącymi zerami.

Opcje wyświetlania tygodnia

%U: Drukuje numer tygodnia w roku, biorąc pod uwagę niedzielę jako pierwszy dzień tygodnia. Na przykład trzeci tydzień roku, dwudziesty tydzień roku itd.
%V: Drukuje numer tygodnia ISO w roku, biorąc pod uwagę poniedziałek jako pierwszy dzień tygodnia.
% W: Numer tygodnia w roku, biorąc pod uwagę poniedziałek jako pierwszy dzień tygodnia.

Opcje wyświetlania miesiąca

%bo%h — drukuje skróconą nazwę miesiąca, taką jak styczeń, luty, marzec itp.
%B: drukuje pełną nazwę miesiąca, stycznia, lutego, marca itd.
% m: Drukuje numer miesiąca, w razie potrzeby z zerem na początku 01, 02, 03… 12.

Opcje wyświetlania roku

%C: Drukuje wiek bez roku. W 2019 roku wydrukuje 20.
%y: drukuje rok jako dwie cyfry. w 2019 roku wydrukuje 19.
%Y: drukuje rok jako cztery cyfry.

Opcje wyświetlania czasu

%T: Drukuje czas w formacie GG:MM:SS.
%R: Drukuje godzinę i minuty w formacie GG:MM bez sekund, używając zegara 24-godzinnego.
%r: Drukuje czas w oparciu o Twoją lokalizację, używając zegara 12-godzinnego i wskaźnika am lub pm.
%X: Drukuje czas w oparciu o Twoją lokalizację przy użyciu zegara 24-godzinnego. Prawdopodobnie. Zauważ, że podczas testowania ta opcja zachowywała się dokładnie tak, jak %r, jak pokazano poniżej. Na komputerze z systemem Linux skonfigurowanym dla ustawień regionalnych dla Wielkiej Brytanii i ustawionym na GMT, zgodnie z oczekiwaniami wydrukowano czas przy użyciu zegara 24-godzinnego bez wskaźnika AM lub PM.

Opcje wyświetlania czasu

% H: Drukuje godzinę 00, 01, 02… 23.
% I: Drukuje czas przy użyciu zegara 12-godzinnego, 00, 01, 02… 12, z wiodącym zerem, jeśli to konieczne.

Opcje wyświetlania minut

%M: drukuje minuty, 01, 02, 03… 59, w razie potrzeby z wiodącym zerem.

Opcje wyświetlania sekund

%s — wyświetla liczbę sekund od 1970-01-01 00:00:00, czyli od początku .
% S: Drukuje sekundy, 01, 02, 03… 59, z początkowym zerem, jeśli to konieczne.
%N — drukuje nanosekundy.

Opcje wyświetlania informacji o strefie czasowej

%z: drukuje różnicę czasu między Twoją strefą czasową a UTC.
%:z: drukuje różnicę czasu między twoją strefą czasową a UTC, z a: między godzinami a minutami. Zwróć uwagę na : między znakiem % a z.
% :: z: drukuje różnicę czasu między Twoją strefą czasową a UTC, z a: między godzinami, minutami i sekundami. Zwróć uwagę na :: między znakiem % i z.
%Z: drukuje alfabetyczną nazwę strefy czasowej.

Opcje związane z formatem

%p: Drukuje znak zachęty AM lub PM wielkimi literami.
%P: Drukuje monit am lub pm małymi literami. Zwróć uwagę na specyfikę tych dwóch opcji. Mała litera p wypisuje wielkie litery, a wielka litera P wyprowadza małe litery.
%t: wydrukuj kartę.
% n : drukuj nową linię.

Opcje modyfikacji innych opcji

Modyfikatory te można wstawić między % a literę opcji innych opcji, aby zmodyfikować ich wyświetlanie. Na przykład % -S usunie wiodące zero dla jednocyfrowych wartości sekund.

-: Pojedynczy łącznik zapobiega dopełnianiu zerami wartości jednocyfrowych.
_ – Pojedyncze podkreślenie dodaje spacje wiodące dla wartości jednocyfrowych.
0 — zapewnia wiodące zera dla wartości jednocyfrowych.
^: Użyj wielkich liter, jeśli to możliwe (nie wszystkie opcje uwzględniają ten modyfikator).
#: Użyj odwrotnej wielkości liter dla opcji, jeśli to możliwe (nie wszystkie opcje uwzględniają ten modyfikator).

Jeszcze dwie sprytne sztuczki

Aby uzyskać czas ostatniej modyfikacji pliku, użyj opcji -r (odniesienie). Zauważ, że używa to – (myślnika) zamiast znaku % i nie wymaga znaku +. Wypróbuj to polecenie w swoim folderze domowym:

data -r .bashrc

Ustawienie TZ umożliwia zmianę strefy czasowej na czas trwania pojedynczego polecenia.

TZ=data GMT +%c

Użyj daty w skryptach

Włączenie skryptu powłoki Bash do drukowania godziny i daty jest trywialne. Utwórz plik tekstowy o następującej treści i zapisz go jako gd.sh.

#!/bin/bash TODAY=$(data +”Dzisiaj to %A, %d z %B”) TIMENOW=$(data +”Czas lokalny to %r”) TIME_UK=$(TZ=BST data +” Czas w Wielkiej Brytanii to %r”) echo $TODAY echo $TIMENOW echo $TIME_UK

Wpisz następujące polecenie, aby ustawić uprawnienia do wykonywania i uczynić skrypt wykonywalnym.

chmod +x gd.sh

Uruchom skrypt za pomocą tego polecenia:

./gd.sh

Możemy użyć polecenia date, aby podać znacznik czasu. Pokazany skrypt utworzy katalog ze znacznikiem czasu jako nazwą. Następnie skopiuje do niego wszystkie pliki tekstowe z bieżącego folderu. Uruchamiając ten skrypt okresowo, możemy zrobić migawkę naszych plików tekstowych. Z czasem stworzymy serię folderów z różnymi wersjami naszych plików tekstowych.

Należy pamiętać, że nie jest to solidny system tworzenia kopii zapasowych, służy on wyłącznie do celów ilustracyjnych.

Utwórz plik tekstowy z następującą zawartością i zapisz go jako snapshot.sh.

#!/bin/bash # uzyskaj datę i godzinę date_stamp=$(data +”%F-%H-%M-%S”) # utwórz katalog o tej nazwie mkdir “$date_stamp” # skopiuj pliki z bieżący folder do niego cp *.txt „$date_stamp” # gotowe, zgłoś się i wyjdź echo „Pliki tekstowe skopiowane do katalogu: „$date_stamp

Wpisz następujące polecenie, aby ustawić uprawnienia do wykonywania i uczynić skrypt wykonywalnym.

chmod +x snapshot.sh

Uruchom skrypt za pomocą tego polecenia:

./migawka.sh

Zobaczysz, że katalog został utworzony. Jego nazwa to data i godzina wykonania skryptu. Wewnątrz tego katalogu znajdują się kopie plików tekstowych.

Przy odrobinie namysłu i kreatywności nawet skromne polecenie dotyczące randki może zostać wykorzystane produktywnie.