คำถามติดแท็ก timestamps

การประทับเวลาใช้สำหรับคำถามที่เกี่ยวกับข้อมูลที่ระบุวินาทีตั้งแต่ยุค (19700101T00: 00: 00) หรือมาตรฐานอื่น ๆ ที่เป็นไปได้และสำหรับ (วันที่) และข้อมูลเวลาในชื่อไฟล์

1
คัดลอกไฟล์และเพิ่มการประทับเวลาต่อท้าย
ฉันมีสองปัญหากับสคริปต์ของฉันที่คัดลอกไฟล์และเพิ่มการประทับเวลาให้กับชื่อ cp -ra /home/bpacheco/Test1 /home/bpacheco/Test2-$(date +"%m-%d-%y-%T") ดังกล่าวข้างต้นจะเพิ่มTest2เป็นชื่อไฟล์ Testแต่ฉันต้องการที่จะให้ชื่อไฟล์ไฟล์ต้นฉบับซึ่งในตัวอย่างนี้เป็นชื่อ cp -ra /home/bpacheco/Test1 /home/bpacheco/Test2-$(date +"%m-%d-%y-%r") ปัญหาอื่น ๆ คือเมื่อฉันเพิ่ม%rเป็นรหัสเวลาที่ฉันได้รับข้อผิดพลาดระบุว่า "PM" เป้าหมายไม่ได้เป็นไดเรกทอรี ฉันกำลังพยายามที่จะได้รับการประทับเวลาเป็นเวลานาฬิกา 12 ชั่วโมง

5
รับอายุของไฟล์ที่กำหนด
ฉันจะรับอายุของไฟล์ที่กำหนดอย่างน้อยวันได้อย่างไร ฉันตระหนักดีls -lhและคำสั่งที่คล้ายกัน ฉันต้องการบางสิ่งที่จะทำงานเช่นนี้ getfage <FILE> # prints out '12d' (12 days) นอกจากนี้สิ่งนี้จำเป็นต้องข้ามแพลตฟอร์มเนื่องจากฉันต้องการใช้ภายใต้ Mac OS X ด้วย แต่กรณีการใช้งานหลักอยู่ในกล่อง Linux ของฉัน บันทึก ตั้งแต่ Linux ไม่ได้ติดตามเวลาการสร้างฉันกำลังมองหาโซลูชันสองเท่า: หนึ่งสำหรับmtime (linux) - นั่นเป็นครั้งสุดท้ายที่กล่าวว่าไฟล์ถูกแก้ไข - และอีกหนึ่งสำหรับ Mac OS X ซึ่งสามารถจัดการกับmtimeหรือสร้างเวลา

7
ประทับเวลาก่อนเสียงสะท้อน
มีวิธีที่ดีกว่าในการสร้างการประทับเวลาต่อหน้าecho? ขณะนี้ฉันทำเช่นนี้: #!/bin/sh if mount | grep -q /mnt/usb; then echo `date +%R\ ` "usb device already mounted" else echo `date +%R\ ` "mounting usb device..." mount -t msdosfs /dev/da0s1 /mnt/usb if mount | grep -q /mnt/usb; then echo `date +%R\ ` "usb device successfully mounted" fi fi ผลลัพธ์ควรมีลักษณะดังนี้: 10:36 …
12 shell  timestamps  echo 

3
ทำการทดสอบ -nt / -ot ใน POSIX sh
บิวด์อินtestและ[ยูทิลิตีมีการทดสอบ-nt("ใหม่กว่า") และ-ot("เก่ากว่า") ในเชลล์ส่วนใหญ่แม้ว่าเชลล์จะทำงานใน "โหมด POSIX" (เช่นเดียวกับยูทิลิตี้ภายนอกของชื่อเดียวกันบน ระบบที่ฉันสามารถเข้าถึงได้) การทดสอบเหล่านี้ใช้สำหรับการเปรียบเทียบการประทับเวลาการปรับเปลี่ยนในสองไฟล์ เอกสารความหมายของพวกเขาจะแตกต่างกันเล็กน้อยในการใช้งาน (โดยคำนึงถึงสิ่งที่เกิดขึ้นหากไฟล์หนึ่งหรือไฟล์อื่นที่ไม่ได้อยู่) แต่พวกเขาจะไม่รวมอยู่ในข้อมูลจำเพาะ POSIX สำหรับtestยูทิลิตี้ พวกเขาจะไม่ถูกพาไปข้างหน้าในtestยูทิลิตี้เมื่อคำสั่งแบบมีเงื่อนไขถูกลบออกจากเปลือก [KornShell] เพราะพวกเขาไม่ได้รวมอยู่ในtestยูทิลิตี้ที่มีอยู่ในการติดตั้งในอดีตของshยูทิลิตี้ สมมติว่าฉันต้องการเปรียบเทียบการประทับเวลาการปรับเปลี่ยนระหว่างไฟล์ใน/bin/shเชลล์สคริปต์แล้วดำเนินการขึ้นอยู่กับว่าไฟล์หนึ่งใหม่กว่าอีกไฟล์หนึ่งดังเช่นใน if [ "$sigfile" -nt "$timestamp" ] || [ "$sigfile.tmp" -nt "$timestamp" ] then return fi ... ยูทิลิตี้อื่น ๆ ที่ฉันสามารถใช้นอกเหนือจากmake(ซึ่งจะทำให้สคริปต์ที่เหลือไม่ได้พูดอย่างน้อยที่สุด) หรือฉันควรจะสมมติว่าไม่มีใครที่จะเรียกใช้สคริปต์ใน "การดำเนินการทางประวัติศาสตร์ของsh" หรือลาออกเพื่อเขียนเปลือกเฉพาะเช่นbash?
11 files  timestamps  posix  test 

5
ทดสอบว่าไฟล์ถูกแก้ไขหลังจากวันที่ในชื่อไฟล์
ฉันมีไฟล์ชื่อYYYYMMDDในชื่อไฟล์เช่น file-name-20151002.txt ฉันต้องการตรวจสอบว่าไฟล์นี้ถูกแก้ไขหลังจาก 2015-10-02 หมายเหตุ: ฉันสามารถทำได้โดยดูที่ผลลัพธ์ของlsแต่ฉันรู้ว่าการแยกวิเคราะห์ผลลัพธ์lsเป็นความคิดที่ไม่ดี ฉันไม่จำเป็นต้องค้นหาไฟล์ทั้งหมดที่ลงวันที่หลังจากวันที่ที่ระบุเพียงแค่ต้องทดสอบไฟล์หนึ่งไฟล์ในแต่ละครั้ง ฉันไม่กังวลเกี่ยวกับไฟล์ที่ถูกแก้ไขในวันเดียวกันหลังจากที่ฉันสร้างมันขึ้นมา นั่นคือฉันแค่อยากรู้ว่าไฟล์นี้ด้วย20151002ในชื่อมีการแก้ไขในวันที่ 3 ตุลาคม 2015 หรือหลังจากนั้น ฉันใช้ MacOs 10.9.5
11 bash  files  osx  timestamps 

3
ฉันจะตั้งค่า mtime ของไฟล์ในรูปแบบของยุคได้อย่างไร?
ฉันรู้วิธีรับไฟล์ mtime ในรูปแบบ epoch: stat --format=%Y <file> แต่ฉันไม่สามารถหาวิธีกำหนด mtime ของไฟล์ในรูปแบบยุค หน้าสัมผัส (1) หน้าคนดูเหมือนจะยอมรับค่า "การประทับเวลา" เท่านั้น (รูปแบบคงที่มากกว่าหรือน้อยกว่าซึ่งใช้เดือน, วัน, ชั่วโมง, minues, ฯลฯ ) หรือ "สตริงรูปแบบวันที่มนุษย์อ่านได้ฟรีส่วนใหญ่" มียูทิลิตี้อื่นที่ฉันควรจะตรวจสอบหรือไม่? ขอบคุณ

4
เวลาของระบบ Linux ข้ามไปชั่วขณะ
ฉันเห็นพฤติกรรมแปลก ๆ ของการเปลี่ยนเวลาของระบบในเซิร์ฟเวอร์ (ฮาร์ดแวร์) บางตัว: ใน/var/logs/syslog, วันเวลาที่นำหน้าแต่ละข้อความบันทึกบางครั้งเปลี่ยนเป็นแบบสุ่มและกลับมาเป็นปกติในข้อความถัดไปเช่น: Feb 22 2018 09:09:30 ... Feb 22 2018 09:09:32 ... Jan 13 2610 15:37:42 ... Feb 22 2018 09:09:33 ... Feb 22 2018 09:09:34 ... เช่นในตัวอย่างการเปลี่ยนวันที่อย่างกะทันหันสามารถทำได้ไกลหลายร้อยปี ฉันสามารถยืนยันได้ว่าข้อความบันทึกที่มีการประทับเวลาแปลก ๆ ไม่ได้มาจากกระบวนการเฉพาะ - มันสามารถเกิดขึ้นแบบสุ่มสำหรับทุกคน และระยะเวลาระหว่างการเปลี่ยนแปลงเวลาที่ผิดปกติ 2 ครั้งจะแตกต่างกันไประหว่างสองสามนาทีถึงสองสามชั่วโมง (แต่ฉันสงสัยว่าการเปลี่ยนแปลงเวลาผิดปกติอาจเกิดขึ้นบ่อยครั้ง แต่พวกเขาส่วนใหญ่ไม่ได้เปิดเผยใน syslog นอกจากนี้เนื่องจากมันเกิดขึ้นบนเซิร์ฟเวอร์มากกว่าหนึ่งเครื่องฉันคิดว่ามันไม่ใช่ปัญหาฮาร์ดแวร์ ข้อมูลเพิ่มเติมเกี่ยวกับ severs: เป็นการติดตั้ง openstack ที่มีคอนโทรลเลอร์หนึ่งตัวและโหนดการคำนวณสองสามตัว …
11 logs  timestamps  time 

3
stat: การแก้ไขเวลาประทับของไฟล์
ฉันใช้stat -f %m .bashrcเพื่อรับเวลาการแก้ไขของ. bashrc บน osx แต่เมื่อฉันเรียกใช้คำสั่งเดียวกันบน Ubuntu มัน spits ข้อผิดพลาด: stat: cannot read file system information for %m': No such file or directory มีวิธีที่เข้ากันได้เพื่อให้บรรลุนี้

2
ฉันจะใช้ไฟล์จาก HTTP เป็นสิ่งที่จำเป็นต้องมีใน GNU ได้อย่างไร
ฉันต้องการใช้ไฟล์จากเวิลด์ไวด์เว็บเป็นข้อกำหนดเบื้องต้นใน makefiles ของฉัน: local.dat: http://example.org/example.gz curl -s $< | gzip -d | transmogrify >$@ ฉันแค่ต้องการ "ส่งผ่าน" หากไฟล์รีโมตใหม่กว่าไฟล์โลคัลเช่นเดียวกับที่ทำให้ใช้งานได้ตามปกติ ฉันไม่ต้องการเก็บตัวอย่าง example.gz ที่เก็บไว้ชั่วคราว- ไฟล์มีขนาดใหญ่และฉันไม่ต้องการข้อมูลดิบ ฉันต้องการหลีกเลี่ยงการดาวน์โหลดไฟล์ทั้งหมด เป้าหมายคือการประมวลผลสองสามขนานพร้อมกันโดยใช้-jแฟล็ก make วิธีที่สะอาดในการแก้ปัญหานี้คืออะไร? ฉันสามารถนึกถึงวิธีไปสองสามวิธี: เก็บไฟล์ดัมมี่ที่ว่างเปล่าออกไปอัพเดตทุกครั้งที่เป้าหมายถูกสร้างขึ้นใหม่ ปลั๊กอินบางตัวที่ใช้ระบบปลั๊กอินใหม่ของ GNU make (ซึ่งฉันไม่รู้อะไรเลย) วิธีการที่ไม่เชื่อเรื่องพระเจ้าที่เมาท์เซิร์ฟเวอร์ HTTP ในระบบไฟล์โลคอล ก่อนที่จะขุดเพิ่มเติมฉันต้องการคำแนะนำตัวอย่างที่ดีกว่า!

4
`ls -lt` จะติดตาม mtimes ที่ถูกต้องหรือเพียงแค่ประมาณ mtimes ถึงวินาที?
ls -lแสดงการประทับเวลาการปรับเปลี่ยนของไฟล์ไม่เกินวินาทีเท่านั้น หากไฟล์สองไฟล์มีการประทับเวลาเท่ากันเป็นวินาที แต่ถูกแก้ไขในเวลาเดียวกันจะls -ltเรียงลำดับไฟล์ตามลำดับของ mtimes ที่ถูกต้องหรือเพียงแค่ mtimes โดยประมาณสูงสุดวินาที พล)?
10 ls  timestamps 

4
ตรวจสอบว่าไฟล์ถูกแก้ไขหรือไม่
ใน Linux (ปัจจุบันใช้ระบบไฟล์ ext4) จะสามารถตรวจสอบได้อย่างรวดเร็วว่าเนื้อหาของไฟล์ถูกแก้ไขโดยไม่อ่านเนื้อหาใด ๆ ของมันอย่างไร เป็นstatคำสั่งวิธีการที่แนะนำ? ฉันกำลังทำ $ stat --format "%Y" hello.txt และต่อมาฉันสามารถตรวจสอบว่าคำสั่งเดียวกันให้ผลลัพธ์เดียวกันหรือไม่ หากเป็นเช่นนั้นฉันสรุปได้ว่า hello.txt ไม่ได้เปลี่ยนไป ความรู้สึกของฉันคือคนต้องการที่จะโยนพารามิเตอร์เพิ่มเติมเพื่อให้แน่ใจยิ่งขึ้น ตัวอย่างเช่นจะเพิ่มขนาดไฟล์ชื่อไฟล์ ฯลฯ ให้ "ลายนิ้วมือ" ของไฟล์ที่ดียิ่งขึ้นหรือไม่ ในหัวข้อนี้ฉันจำได้ว่าไดรฟ์ข้อมูล TrueCrypt ที่ฉันเคยได้รับมักจะถูกละเว้นโดยโปรแกรมสำรองข้อมูลส่วนเพิ่มของฉันอาจเป็นเพราะ TrueCrypt ทำให้แน่ใจว่าไม่มีการเปลี่ยนแปลงข้อมูลเมตา ฉันคิดว่ามันเป็นไปได้จริง ๆ ที่จะเปลี่ยนแปลงข้อมูลทั้งหมดที่ส่งคืนโดยstatดังนั้นจึงไม่สามารถรับประกันได้ว่าจะรับทุกการเปลี่ยนแปลงที่เป็นไปได้ของไฟล์หรือไม่
10 files  timestamps  stat 

3
จะค้นหาความแตกต่างระหว่างการประทับเวลาสองครั้งได้ถึงมิลลิวินาทีได้อย่างไร
ฉันใหม่สำหรับการเขียนสคริปต์เชลล์ หัวใจของสคริปต์ของฉันคือการหาความแตกต่างระหว่างการประทับเวลาสองครั้งจนถึงมิลลิวินาที กับฉันฉันมีไฟล์ที่มีเนื้อหาของการประทับเวลาเท่านั้นเช่น 2012-09-13 15:00:29,290 2012-09-13 15:00:29,297 2012-09-13 15:00:29,428 2012-09-13 15:00:29,447 เช่นนี้ฉันมีบันทึกประมาณ 30k ซึ่งฉันไม่ควรประสบปัญหาด้านประสิทธิภาพเมื่อรันสคริปต์ ปัจจัยหลายอย่างเช่นปีอธิกสุรทินเดือนที่มี 31 วันและอื่น ๆ เข้ามาในรูปภาพเมื่อฉันพยายามเขียนสคริปต์สำหรับเรื่องนี้ ใครสามารถช่วยฉันในเรื่องนี้ได้ไหม

5
ทางเลือกมาตรฐานแบบไม่ใช้เวลามาตรฐานสากล? [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา สำหรับการเปรียบเทียบครั้งเรียกใช้สคริปต์ระหว่างเปลือกหอยแตกต่างกันบางคำตอบ SE แนะนำให้ใช้bash's ในตัว timeคำสั่งเช่นดังนั้น: time bash -c 'foo.sh' time dash -c 'foo.sh' ... ฯลฯให้ทุกเชลล์ทำการทดสอบ มาตรฐานดังกล่าวล้มเหลวในการกำจัดเวลาที่แต่ละเปลือกโหลดและเริ่มต้นตัวเอง ตัวอย่างเช่นสมมติว่าทั้งสองคำสั่งดังกล่าวถูกจัดเก็บไว้ในอุปกรณ์ช้ากับความเร็วในการอ่านของฟล็อปปี้ดิสก์ต้น (124KB / s), dash(ก~ 150Kปฏิบัติการ) จะโหลดประมาณ7 เท่าเร็วกว่าbash( ~ 1M ) เปลือก เวลาในการโหลดจะเอียงtimeตัวเลข - เวลาก่อนการโหลดของกระสุนเหล่านั้นไม่เกี่ยวข้องกับการวัดเวลาการทำงานของfoo.shใต้แต่ละเชลล์หลังจากกระสุนถูกโหลดแล้ว แบบพกพาและยูทิลิตี้ทั่วไปที่ดีที่สุดในการรันสำหรับกำหนดเวลาสคริปต์ที่สามารถเรียกใช้จากภายในแต่ละเชลล์คืออะไร ดังนั้นโค้ดด้านบนจะมีลักษณะดังนี้: bash -c 'general_timer_util foo.sh' dash -c 'general_timer_util foo.sh' หมายเหตุ: ไม่มีคำสั่งในตัวของ …

4
ย้ายไฟล์ตามวันที่ไปยังไดเรกทอรีอื่นโดยใช้ CLI
ฉันมีรูปภาพจำนวนมากจากฮาร์ดไดรฟ์เก่าที่ฉันพยายามจัดระเบียบ ถ้าฉันรันls -lฉันสังเกตว่าไฟล์เหล่านี้ทั้งหมดมีวันที่สร้างปี 2555 หรือก่อนหน้า โดยอุดมคติแล้วฉันต้องการย้ายสิ่งเหล่านี้ไปยังฮาร์ดไดรฟ์ที่สองของคอมพิวเตอร์ซึ่งไม่ได้ตั้งค่าให้ติดตั้งโดยอัตโนมัติ โดยเฉพาะอย่างยิ่งฉันสามารถทำสิ่งนี้ทั้งหมดเป็นชุดที่มีคำสั่งเชื่อมโยงกัน จนถึงตอนนี้ผมมีls -l | grep -i 2012ที่ถ่มน้ำลายออกเฉพาะไฟล์ที่มี 2012 ls -lในวันที่จัดไว้ให้โดย ทีนี้เคล็ดลับก็คือcp'ทุกไฟล์เหล่านั้นไปยังไดเรกทอรีใหม่ ฉันไม่แน่ใจว่าจะไปที่ไหนเพราะจะต้องคัดลอกแต่ละไฟล์ คำสั่งชุดถัดไปของฉันคืออะไร

1
แยกเวลาประทับจากไฟล์ gzip
ฉันจะทราบเวลาประทับดั้งเดิมดั้งเดิมของไฟล์ที่fooบีบอัดด้วยgzipโดยไม่ต้องคลายการบีบอัดได้foo.gzอย่างไร gzip --verbose --list foo.gzและfile foo.gzจะพิมพ์วันที่และเวลาที่จัดรูปแบบ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.