ไดเร็กทอรีชั่วคราวใน Linux อยู่ที่ไหน


63

Linux มีไดเรกทอรีชั่วคราวมาตรฐานสำหรับการใช้งานทั่วไปเช่นC:\Tempโฟลเดอร์ของ Windows หรือไม่ ถ้าเป็นเช่นนั้นอยู่ที่ไหน ฉันพบคำถาม SO เกี่ยวกับการค้นหาtmpไดเรกทอรีโดยทางโปรแกรมแต่ฉันต้องการตั้งค่าตำแหน่งชั่วคราวในไฟล์กำหนดค่า XML ล่วงหน้า


1
ฉันรู้ว่านี่เป็นคำถามที่ง่ายมาก แต่ฉันไม่สามารถหาคำตอบที่ชัดเจนและเข้าใจง่ายจากการค้นหา ผลลัพธ์จำนวนมากที่ฉันได้รับสำหรับไดเรกทอรี / ไฟล์ชั่วคราวของโปรแกรม ฉันเห็นการอ้างอิงหลายรายการ/tmpแต่พวกเขาไม่ชัดเจนเกี่ยวกับว่าเป็นมาตรฐานสำหรับ Linux หรือเพียงแค่การประชุมทั่วไป
Pops

5
หน้าต่างC:\Tempเป็นที่สุดอย่างแน่นอนไม่ได้มาตรฐาน Windows 95 ได้%TEMP%ชี้ไปที่C:\WINDOWS\Tempแล้ว
grawity

คำตอบ:


91

ระบบแฟ้มลำดับชั้นมาตรฐานรุ่น 3.0 พูดว่า:

/ tmp: ไฟล์ชั่วคราว

/tmpไดเรกทอรีจะต้องทำพร้อมใช้งานสำหรับโปรแกรมที่ต้องการไฟล์ชั่วคราว

โปรแกรมจะต้องไม่ถือว่าไฟล์หรือไดเรกทอรีใด ๆ ใน/tmpนั้นถูกสงวนไว้ระหว่างการเรียกใช้ของโปรแกรม

หลักการและเหตุผล

POSIX.1-2008 มาตรฐาน IEEE แสดงรายการข้อกำหนดที่คล้ายกับส่วนด้านบน แม้ว่าข้อมูลที่เก็บไว้ใน/tmpอาจถูกลบในลักษณะเฉพาะของไซต์ขอแนะนำให้ลบไฟล์และไดเรกทอรีที่อยู่ใน/tmpทุกครั้งที่มีการบูทระบบ

FHS เพิ่มคำแนะนำนี้บนพื้นฐานของแบบอย่างก่อนประวัติศาสตร์และการปฏิบัติทั่วไป แต่ไม่ได้ทำให้เป็นข้อกำหนดเพราะการบริหารระบบไม่ได้อยู่ในขอบเขตของมาตรฐานนี้

/ var / tmp: ไฟล์ชั่วคราวที่เก็บไว้ระหว่างการรีบูตระบบ

/var/tmpไดเรกทอรีมีให้สำหรับโปรแกรมที่ต้องการไฟล์ชั่วคราวหรือไดเรกทอรีที่จะถูกเก็บไว้ระหว่างการรีบูตระบบ ดังนั้นข้อมูลที่เก็บไว้ในถาวรมากกว่าข้อมูลใน/var/tmp/tmp

ไฟล์และไดเรกทอรีที่อยู่ในนั้น/var/tmpจะต้องไม่ถูกลบทิ้งเมื่อระบบทำการบูท แม้ว่าข้อมูลที่เก็บไว้ในจะถูกลบออกมักจะอยู่ในลักษณะที่เว็บไซต์ที่เฉพาะเจาะจงก็จะแนะนำว่าการลบเกิดขึ้นในช่วงเวลาที่น้อยกว่าที่พบบ่อย/var/tmp/tmp

นอกจากนี้ข้อมูลจำเพาะของ Open Group Base ฉบับที่ 7 ตัวแปรสภาพแวดล้อมกล่าวถึงสิ่งต่อไปนี้:

TMPDIR ตัวแปรนี้จะแสดงชื่อพา ธ ของไดเรกทอรีที่มีให้สำหรับโปรแกรมที่ต้องการสถานที่ในการสร้างไฟล์ชั่วคราว


เป็นการยากที่จะโต้แย้งกับมาตรฐาน ขอบคุณ!
Pops

11

นี่เป็นคำถามเก่าดังนั้นวันนี้จึงมีตัวเลือกอื่นให้ใช้ การกระจาย Linux ที่ใช้systemd(ซึ่งเป็น 90% ของทั้งหมด) สามารถใช้$XDG_RUNTIME_DIRไดเรกทอรี ( XDG Base Directory Specification ) เพื่อจัดเก็บไฟล์ชั่วคราวบางประเภท /run/user/$uidมันตั้งอยู่ทั่วไป นี่คือไดเรกทอรีต่อผู้ใช้ที่มี700สิทธิ์ที่ให้ความปลอดภัยที่ดีขึ้น นี่คือtmpfsเมานต์ที่ให้ประสิทธิภาพการทำงาน ข้อเสียtmpfsคือควรใช้ไฟล์และซ็อกเก็ตขนาดเล็กเท่านั้น

ผมมองไปที่มันเป็นแต่งงานของและ/tmp/var/run


แน่นอนว่าเทคโนโลยีได้รับการปรับปรุงตั้งแต่ 5 ปี
yass

10

ใช่ / tmp สำหรับการใช้งานทั่วไป ดูที่นี่และที่นี่ที่ Fileier Hierarchy Standard

/ tmp / ไฟล์ชั่วคราว (ดูเพิ่มเติมที่ / var / tmp) มักจะไม่ถูกสงวนไว้ระหว่างการรีบูตระบบ

ด้วยรายละเอียดเพิ่มเติมที่ระบุไว้ใน PDF


2

คุณไม่สามารถเลือกชื่อไดเรกตอรีชั่วคราวได้ล่วงหน้าซึ่งจะใช้งานได้กับระบบ Linux ใด ๆ ที่จริงแล้วคุณไม่สามารถทำได้บน Windows เช่นกัน ตามบทความของ Wikipedia เกี่ยวกับโฟลเดอร์ชั่วคราวไดเรกทอรีชั่วคราวบน Windows จะถูกกำหนดโดยตัวแปรสภาพแวดล้อม TEMP หากคุณเพียงแค่ใช้c:\Tempเป็นไดเรกทอรีชั่วคราวบนระบบ Windows ที่ตั้งค่า TEMP เป็นอย่างอื่นดังนั้นโปรแกรมใดก็ตามที่ใช้ไฟล์ XML ของคุณเพื่อเลือกไดเรกทอรีชั่วคราวจะล้มเหลว

ในระยะสั้นไดเรกทอรีชั่วคราวของระบบจะถูกกำหนดโดยสภาพแวดล้อมในระบบปฏิบัติการที่ทันสมัยทั้งหมดที่ฉันรู้จักรวมถึงทั้ง Windows และระบบที่คล้าย UNIX การตั้งค่าเส้นทางแบบคงที่เดียวเป็นไดเรกทอรีชั่วคราวของคุณจะทำงานตราบใดที่ค่าเริ่มต้นยังไม่ได้เปลี่ยน

/tmpอย่างไรก็ตามไดเรกทอรีชั่วคราวมาตรฐานในระบบลินุกซ์โดยทั่วไปคือ มันเทียบเท่ากับC:\Tempในแง่ที่ว่ามันเป็นเพียงไดเรกทอรีชั่วคราวเริ่มต้นไม่ใช่สากล แม้ว่า/tmpจะพร้อมใช้งานหากผู้ใช้ (หรือระบบ) ได้ตั้งค่าตัวแปรสภาพแวดล้อม TEMP ควรใช้ค่าของตัวแปรนั้นแทน

คุณสามารถลองเลือกไดเรกทอรีชั่วคราวที่สัมพันธ์กับโฮมไดเรกทอรีของผู้ใช้ซึ่งคุณสามารถสร้างได้


ในกรณีของฉันฉันคิดว่ามันเป็นข้อสันนิษฐานที่ปลอดภัยว่าค่าเริ่มต้นยังอยู่ในสถานที่ แต่สิ่งนี้เป็นสิ่งที่ดีที่คุณควรคำนึงถึง
Pops

บางโปรแกรมเช่น bash, gcc, inkscape หรือ lynx ใช้TMPDIRตัวแปรสภาพแวดล้อม
Cristian Ciupitu

@ Ryan ทำไมต้อง/tmpควบคุมตัวแปร temp
Pacerier

0

คำถามเริ่มต้นคือ: Linux มีไดเรกทอรีชั่วคราวมาตรฐานหรือไม่ ถ้าเป็นเช่นนั้นอยู่ที่ไหน พบโฟลเดอร์ tmp ที่: File System / tmp & File System / var / tmp เนื้อหา / tmp สามารถลบได้ - หากคุณทราบว่าต้องใช้ไฟล์ / โฟลเดอร์ใดบ้าง / ไม่จำเป็นต้องใช้แอปต่าง ๆ ใน "ตามที่ต้องการ" รากฐาน ไฟล์ที่ไม่ได้รับการตอบรับมักเป็นไฟล์ที่แอพดาวน์โหลดเพื่ออำนวยความสะดวกให้กับแอพเอง ณ จุดนั้นเท่านั้นดังนั้นจึงไม่จำเป็นต้องดำเนินการเพิ่มเติมหลังจากที่แอปดำเนินการเสร็จแล้ว ไม่ควรแตะโฟลเดอร์ / var / tmp เลย


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