web-dev-qa-db-fra.com

Impression de l'époque avec l'utilitaire de date

De la lecture ne autre réponse Je sais que la commande suivante peut être utilisée pour imprimer le courant temps époque :

$ date +'%s'
1491150773

De la lecture à travers la page date(1) Page Man (Remarque: J'utilise réellement MacOS) J'ai trouvé un exemple illustrant l'utilisation:

 Finally the command:

 date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s"

 can be used to parse the output from date and express it in Epoch time.

De lire l'exemple, il semble que le + Peut aller à l'intérieur des guillemets simples:

$ date '+%s'
1491150781

Même si je suis capable d'imprimer avec succès l'époque actuelle, je ne comprends pas pourquoi cela fonctionne et j'ai des questions:

  • Pourquoi date +'%s' Imprimer l'époque actuelle? Y a-t-il un exemple plus général qui illustre le motif de son utilisation dans cet exemple?
  • Pourquoi suis-je capable de mettre le + À l'intérieur des citations?

J'ai essayé de mettre la commande explique , mais ce n'est pas très utile:

enter image description here

7
mbigras

Date de la BSD et GNU DAIRE AVEZ LE FORMULAIRE:

date +FORMAT

avec FORMAT est la chaîne de format de sortie pour afficher la date. Donc, ce que vous nourririez à date est juste une chaîne, en commençant par +.

Avant de passer la chaîne à date, la chaîne est interprétée par votre coquille. Donc +%s ou +'%s' ou "+%s" sont à la fois équivalents, interprétés comme étant par toutes les coquilles de POSIX.

Le seul avantage de +'%s' Est-ce que vous pouvez détecter rapidement quel format à chaîne a été utilisé ou copier, l'analyser sans vous soucier de la +.

Aussi, +'FORMAT' vous aidera lorsque vous utilisez des formats spéciaux, qui peuvent être interprétés comme une expansion de votre shell. Exemple avec zsh:

date +'(%s)'

travaillerait pendant:

date +(%s)

ne serait pas.

14
cuonglm