4 votes

Comment faire en sorte qu'un bash script génère un nouveau nom de fichier à chaque fois qu'il est exécuté ?

J'aimerais faire un .tar d'un répertoire particulier chaque jour de la semaine. La façon dont je voudrais le faire est avec un bash script faisant un fichier tar chaque jour avec crontab.

Je me demandais, y a-t-il un moyen de réguler le nom du fichier tar que le bash script fait ? Actuellement, c'est le même à chaque fois que le fichier est créé, parce que le bash n'a qu'une seule commande : tar -cvf file.tar /home/name/folder/

Mais j'aimerais qu'il soit légèrement différent selon le jour, par exemple. FileTus.tar , FileWed.tar , FileFri.tar ,etc.

Y a-t-il un moyen de faire cela par le biais de commandes de terminal ?

Merci

8voto

chronitis Points 11442

El date peut produire une date sous forme de texte dans le format que vous souhaitez. Vous l'utiliserez ensuite dans un script du type :

tar -cvf File$(date +%a).tar /home/name/folder

Cela produirait FileMon.tar , FileTue.tar comme ci-dessus. Voir man date pour une description des différents formats de date qu'il peut produire.

4voto

Adam Millerchip Points 101

Au lieu de se contenter de noms de jours, pourquoi ne pas adopter un format de date complet ? De cette façon, le même nom de fichier n'est pas généré chaque semaine :)

Quelque chose comme ça -

nits@excalibur:~$ tar -cvf /home/nits/Desktop/File$(date +%d%B%Y).tar Music/

produirait un résultat comme celui-ci -

nits@excalibur:~$ ls ~/Desktop/
File14August2012.tar

Pour quelque chose avec un timestamp (comme demandé dans les commentaires) :

nits@excalibur:~$ tar -cvf "/home/nits/Desktop/File$(date +%d%B%Y_%H:%M).tar" Music/
nits@excalibur:~$ ls ~/Desktop/
File14August2012_20:14.tar

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X