Score:2

แฟล็กคำสั่ง tail ลองใหม่ไม่ทำงานกับไวด์การ์ด?

ธง tr

ฉันต้องการต่อท้ายชื่อไดเร็กทอรีที่ไม่รู้จักซึ่งมีไฟล์ที่ไม่มีอยู่จริง เช่น:

หาง -F /tmp/*/app.log

อย่างไรก็ตามนั่นไม่ได้ผลตามที่ตั้งใจไว้กับไวด์การ์ด: ถ้าฉันสร้างไฟล์ด้วยพาธนั้น หาง จะไม่เริ่มติดตามจนกว่าฉันจะรีสตาร์ทคำสั่ง ในทางกลับกัน ถ้าฉันวิ่ง:

หาง -F /tmp/example/app.log

ทันทีที่ไฟล์ปรากฏขึ้น คำสั่งจะแสดงผล: หาง: '/tmp/example/app.log' ปรากฏขึ้น; ตามไฟล์ใหม่

ฉันได้ลอง -f ชื่อไฟล์ -- ลองใหม่ รวมกันแทน -ฉ และผลลัพธ์ก็เหมือนกัน

จะแก้ไขได้อย่างไรและมีวิธีอื่นเพื่อให้บรรลุเป้าหมายเดียวกันหรือไม่?

djdomi avatar
za flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [ตรวจสอบบันทึกอย่างต่อเนื่องด้วยส่วนท้ายที่หมุนเป็นครั้งคราว](https://serverfault.com/questions/53699/continuously-monitor-logs-with-tail-that-are-occasionally-rotated)
iomv avatar
tr flag
@djdomi ไม่เลย คำถามนั้นอธิบายวิธีใช้แฟล็ก `-F` ซึ่งอันที่จริงฉันเน้นตัวเองในคำถามของฉันว่าฉันรู้วิธีใช้งาน แต่ฉันเชื่อว่ามันไม่ทำงานตามที่ตั้งใจไว้เมื่อใช้ไวด์การ์ด
Score:4
ธง it

/tmp/*/app.log จะถูกขยายโดยเชลล์ (ฉันเข้าใจ BASH) หากมีการจับคู่อยู่ สิ่งนี้จะถูกขยายไปยังการจับคู่เหล่านั้นแล้วส่งเป็นอาร์กิวเมนต์ หาง

$ find /tmp/test -type ฉ
/tmp/test/a/app.log                                                                                                                                                                                                                                
/tmp/test/b/app.log                  

$ echo /tmp/test/*/app.log                                                                                                                                                                                        
/tmp/test/a/app.log /tmp/test/b/app.log

ดังนั้น ในกรณีข้างต้น หาง จะถูกกำหนดค่าให้ติดตามโดยเฉพาะ แอพ.ล็อก ใน และ แอพ.ล็อก ใน . ถ้าในขณะที่เริ่มต้น แอพ.ล็อก ใน ไม่มีอยู่จริงย่อมไม่เป็นไปตามนั้น. หากมีการสร้างไดเร็กทอรีหรือไฟล์ใหม่ ไดเร็กทอรีหรือไฟล์จะไม่ตามมาด้วย

ในกรณีที่ไม่มีการจับคู่ สตริงที่ไม่ขยายจะถูกส่งผ่านเป็นอาร์กิวเมนต์ หาง

$ echo /tmp/test/*/app2.log                                                                                                                                                                                     
/tmp/test/*/app2.log               

ดังนั้นจะพยายามติดตามชื่อพาธ/ชื่อไฟล์ตามตัวอักษร /tmp/test/*/app2.logซึ่งคงจะไม่มีอยู่จริง (หรือถ้ามี ก็สร้างมาแบบแปลกๆ เพราะมี. * เนื่องจากชื่อไดเร็กทอรีไม่ใช่สิ่งที่ฉันแนะนำให้ทำภายใต้สถานการณ์ปกติ)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา