ฉันต้องการสร้างไฟล์ที่ชื่อจะเป็นวันที่และเวลาปัจจุบัน ฉันสามารถสร้างไฟล์ด้วยtouchคำสั่ง นอกจากนี้ฉันสามารถรับเวลาปัจจุบันด้วยdateคำสั่ง ดังนั้นฉันคิดว่าฉันต้องใช้คำสั่งที่สองกับคำสั่งแรก ฉันจะทำสิ่งนั้นได้อย่างไร
ฉันต้องการสร้างไฟล์ที่ชื่อจะเป็นวันที่และเวลาปัจจุบัน ฉันสามารถสร้างไฟล์ด้วยtouchคำสั่ง นอกจากนี้ฉันสามารถรับเวลาปัจจุบันด้วยdateคำสั่ง ดังนั้นฉันคิดว่าฉันต้องใช้คำสั่งที่สองกับคำสั่งแรก ฉันจะทำสิ่งนั้นได้อย่างไร
คำตอบ:
ใช้ค่าส่งคืนจากนิพจน์เชลล์เป็นอาร์กิวเมนต์เพื่อtouch:
touch $( date '+%Y-%m-%d_%H-%M-%S' )
ผล: 2012-03-11_14-33-53การมีแฟ้มชื่อเช่น
คำตอบนี้จะถือว่าคุณกำลังใช้bash(คำอธิบายในmanส่วนของหน้าการแทนที่คำสั่ง ) แต่เชลล์อื่น ๆ จะทำงานเหมือนกันหรือแตกต่างกันเล็กน้อยเท่านั้น
"เครื่องหมายคำพูด คุณสามารถจินตนาการผลลัพธ์ของdateการเปลี่ยนส่วนหนึ่งของบรรทัดคำสั่งที่และtouch Sun Mar 11 14:48:31 CET 2012จะสร้างชื่อไฟล์Sun, Marฯลฯtouch "Sun Mar 11 14:48:31 CET 2012"ในมืออื่น ๆ ทำงานได้ดี (ยกเว้นผมไม่แน่ใจว่าวิธีการที่ดีทวิภาคจะทำงาน)
echo "$HOME" นั่นเป็นเหตุผลที่ผมแนะนำการใช้งานของecho '$HOME' "
คุณสามารถใช้คำสั่งที่ง่ายขึ้น
touch $(date | tr ' ' '-')
dateปกติจะแสดงเวลาเป็น hh: mm: ss ผลลัพธ์คำตอบของคุณในชื่อไฟล์ที่มีเครื่องหมายโคลอน สิ่งนี้อาจทำให้เกิดข้อผิดพลาดในระบบไฟล์ที่ใช้ Windows (2) ผลผลิตดิบจากการร้องขออย่างง่ายdateขึ้นอยู่กับโลแคล; เช่นปรับแต่งเป็นภาษาท้องถิ่น ลองLANG=de_DE dateและLANG=fr_FR dateดูตัวอย่าง … (ต่อ)
dateเขียนวันที่เป็น mm / dd / yy (หรือ dd / mm / yy) … (ต่อ)
lsหรือ*สอดคล้องกับลำดับเหตุการณ์ ด้วยคำตอบของคุณFriไฟล์ทั้งหมดจะอยู่ที่จุดเริ่มต้นของรายการเรียงตามพจนานุกรมAprและAugจะปรากฏก่อนเดือนอื่น ๆ