ฉันสามารถเปลี่ยนชื่อของ "nohup.out" ได้หรือไม่?


254

เมื่อฉันรันnohup some_command &เอาต์พุตจะไปที่nohup.out; man nohupพูดว่าให้ดูที่info nohupในทางกลับกันพูดว่า:

หากเอาต์พุตมาตรฐานเป็นเทอร์มินัลเอาต์พุตมาตรฐานของคำสั่งจะถูกผนวกเข้ากับไฟล์ 'nohup.out' หากสิ่งนั้นไม่สามารถเขียนได้มันจะถูกผนวกเข้ากับไฟล์ '$ HOME / nohup.out'; และหากไม่สามารถเขียนได้คำสั่งจะไม่ทำงาน

แต่ถ้าฉันมีหนึ่งคำสั่งที่ใช้nohupกับการส่งออกไป/nohup.outและฉันต้องการเรียกใช้อีกnohupคำสั่งฉันจะเปลี่ยนเส้นทางการส่งออกไปnohup2.out?

คำตอบ:


416
nohup some_command &> nohup2.out &

และ voila


ไวยากรณ์ที่เก่ากว่าสำหรับเวอร์ชัน Bash <4:

nohup some_command > nohup2.out 2>&1 &

4
@ismail ถ้าฉันเข้าใจนี่จะชี้นำเอาต์พุตจาก stdout และ nohup.out เป็น nohup2.out ถ้าอย่างนั้นจะ2>&1&ทำอย่างไร?
David LeBauer

12
2>&1เปลี่ยนเส้นทางstderrไปยังไฟล์เอาต์พุตเดียวกันกับstdoutที่เป็นในกรณีนี้nohup2.out
ismail

17
ใน Bash 4 การเปลี่ยนเส้นทางทั้งสองสามารถย่อเป็นหนึ่ง&> nohup2.outได้
ephemient

1
ฉันลอง &> nohup2.out แล้วใช้งานได้ แต่คุณจะบอกรุ่นทุบตีของคุณได้อย่างไร
monkut

9
@monkut bash --version
ismail

58

ด้วยเหตุผลบางอย่างคำตอบข้างต้นไม่ได้ผลสำหรับฉัน ฉันไม่ได้กลับไปที่พรอมต์คำสั่งหลังจากใช้งานตามที่คาดไว้พร้อมกับส่วนท้าย & แต่ฉันลองด้วย

nohup some_command > nohup2.out&

และใช้งานได้ตามที่ฉันต้องการ ออกจากที่นี่ในกรณีที่คนอื่นอยู่ในสถานการณ์เดียวกัน ใช้ Bash 4.3.8 สำหรับการอ้างอิง


12

ในฐานะที่เป็นจุดขนย้ายไฟล์ i-โหนด (ซึ่งจะถูกเก็บไว้เป็นอิสระจากชื่อไฟล์) บนระบบ Linux / Unix คุณสามารถเปลี่ยนชื่อเริ่มต้นnohup.outชื่อไฟล์อื่น ๆ nohup something&ได้ตลอดเวลาหลังจากที่เริ่มต้น ดังนั้นหนึ่งสามารถทำต่อไปนี้:

$ nohup something&
$ mv nohup.out nohup2.out
$ nohup something2&

ตอนนี้somethingเพิ่มเส้นnohup2.outและการsomething2nohup.out


10

วิธีการข้างต้นจะลบข้อมูลไฟล์เอาต์พุตของคุณทุกครั้งที่คุณเรียกใช้คำสั่ง nohup

ในการผนวกเอาต์พุตในไฟล์ที่ผู้ใช้กำหนดคุณสามารถใช้>>ในคำสั่ง nohup

nohup your_command >> filename.out &

คำสั่งนี้จะผนวกเอาท์พุททั้งหมดในไฟล์ของคุณโดยไม่ลบข้อมูลเก่า

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