Bir argüman içindeki bir dosya adına unix zaman damgasını nasıl ekler?


2

Daha açık olmak gerekirse, Unix zaman damgasının dosya adıma eklenmesini istiyorum:

db:backup --database=mysql --destination=s3 --destinationPath=date+random.sql --compression=gzip

Ancak, bu bana istediğim şey değil, dosya adı olarak "date + random.sql" verir.

Yanıtlar:


7

İkame edilmiş $( ... )bir komutun metinsel çıktısını oluşturmak için yapıyı kullanın ...; de olduğu gibi...

--destinationPath="$(date)"+random.sql

Ancak standart tarih biçiminin zaman damgaları için uygun olmadığını unutmayın, bu nedenle normalde daha uygun bir biçim tanımladığınızı unutmayın.

--destinationPath=$(date +%Y%m%d%H%M%S)+random.sql

Lütfen hala görünüyorsa cevabımı dikkate almayın. Yukarıdaki doğrudur. bkz. tldp.org/LDP/abs/html/commandsub.html
iyrin 12:15

$ (date +% s) bir Unix zaman zaman damgası sağlar. Bu benim arşivleme amaçlı favorim.
Antxon

OP'nin +bir birleştirme operatörü olarak kullanılmaya çalışıldığını düşünüyorum , ancak dosya adının içine girmeyi gerçekten istemedi :)
John WH Smith

@John; Sanırım öyle, ama bazı ayırıcılar olması fena değil. Ayrıca OP'nin değişmez bir dizgeye "rastgele" ya da aslında benzeri bir şeye ihtiyaç duymadığından şüpheleniyorum --destinationPath=$(date +%Y%m%d%H%M%S)_$RANDOM.sql. (Kendisini kesinlikle buldu. :)
Janis

Ubuntu'daki cron işleri için tam olarak işe yaramadı, kaçmak için ilave etmek zorunda kaldı
Ali Gajani 21.05.05.2005

1

Ayrıca --destinationPath = $ (date +% F) + random.sql komutunu beğendim

gibi bir tarih verir 2015-03-17.

Tarih biçimlerinin strftime () işlevinde kullanılan Posix biçimleri olduğuna inanıyorum .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.