लिनक्स में अस्थायी निर्देशिका कहाँ है?


63

क्या लिनक्स के पास सामान्य उपयोग के लिए एक मानक अस्थायी निर्देशिका है, जैसे विंडोज का C:\Tempफ़ोल्डर? यदि हां, यह कहां स्थित है? मुझे एक tmpनिर्देशिका प्रोग्राम को खोजने के बारे में एक SO प्रश्न मिला , लेकिन मैं समय से पहले XML कॉन्फ़िगरेशन फ़ाइल में एक अस्थायी स्थान सेट करना चाहता हूं।


1
मुझे पता है कि यह वास्तव में आसान प्रश्न लगता है, लेकिन मुझे खोज के माध्यम से स्पष्ट, सरल उत्तर नहीं मिला। मेरे द्वारा प्राप्त किए गए कई परिणाम कार्यक्रम-विशिष्ट अस्थायी निर्देशिकाओं / फ़ाइलों के लिए थे। मैंने कई संदर्भ देखे /tmp, लेकिन वे इस बारे में अस्पष्ट थे कि क्या यह लिनक्स के लिए मानक है या केवल एक सामान्य सम्मेलन है।
पॉप

5
विंडोज का C:\Tempसबसे निश्चित रूप से मानक नहीं है। विंडोज 95 पहले से ही %TEMP%इशारा कर रहा था C:\WINDOWS\Temp
ग्रैविटी

जवाबों:


91

फ़ाइल-सिस्टम अनुक्रम स्टैंडर्ड संस्करण 3.0 का कहना है:

/ tmp: अस्थायी फ़ाइलें

/tmpनिर्देशिका प्रोग्राम हैं जो अस्थायी फ़ाइलों की आवश्यकता के लिए उपलब्ध कराया जाना चाहिए।

प्रोग्राम को यह नहीं मानना ​​चाहिए कि /tmpप्रोग्राम के इनवोकेशन के बीच किसी भी फाइल या डायरेक्टरी को संरक्षित किया जाता है।

दलील

IEEE मानक POSIX.1-2008 उपरोक्त अनुभाग के समान आवश्यकताओं को सूचीबद्ध करता है। यद्यपि संग्रहीत डेटा को /tmpसाइट-विशिष्ट तरीके से हटाया जा सकता है, लेकिन यह अनुशंसा की जाती है कि /tmpसिस्टम बूट होने पर फ़ाइलों और निर्देशिकाओं को हटा दिया जाए।

एफएचएस ने इस सिफारिश को ऐतिहासिक मिसाल और सामान्य अभ्यास के आधार पर जोड़ा, लेकिन इसे इसकी आवश्यकता नहीं थी क्योंकि सिस्टम प्रशासन इस मानक के दायरे में नहीं है।

/ var / tmp: सिस्टम रिबूट के बीच संरक्षित अस्थायी फाइलें

/var/tmpनिर्देशिका प्रोग्राम हैं जो अस्थायी फाइल या निर्देशिका है कि सिस्टम रिबूट के बीच संरक्षित कर रहे हैं की आवश्यकता होती है के लिए उपलब्ध कराया गया है। इसलिए, संग्रहीत /var/tmpडेटा डेटा की तुलना में अधिक स्थायी है /tmp

/var/tmpसिस्टम के बूट होने पर स्थित फाइल्स और डायरेक्ट्रीज को डिलीट नहीं किया जाना चाहिए। हालाँकि इसमें संग्रहीत डेटा /var/tmpको आमतौर पर साइट-विशिष्ट तरीके से हटा दिया जाता है, लेकिन यह सिफारिश की जाती है कि विलोपन कम लगातार अंतराल पर होता है /tmp

इसके अलावा द ओपन ग्रुप बेस स्पेसिफिकेशन्स 7, एनवायरमेंट वेरिएबल्स में निम्नलिखित का उल्लेख है:

TMPDIR यह चर उन प्रोग्रामों के लिए उपलब्ध कराई गई निर्देशिका के पथनाम का प्रतिनिधित्व करेगा जिन्हें अस्थायी फ़ाइलों को बनाने के लिए जगह की आवश्यकता होती है।


मानक के साथ बहस करना कठिन है। धन्यवाद!
पॉप

11

यह एक पुराना सवाल है इसलिए आज एक और विकल्प उपलब्ध है। कुछ प्रकार की अस्थायी फ़ाइलों को संग्रहीत करने के लिए लिनक्स वितरण systemd(जो कि उनमें से 90% है) पर अब $XDG_RUNTIME_DIRनिर्देशिका ( XDG बेस डायरेक्टरी स्पेसिफिकेशन ) का उपयोग कर सकते हैं । यह आम तौर पर स्थित है /run/user/$uid। यह एक प्रति-उपयोगकर्ता निर्देशिका है जिसमें 700अनुमतियाँ बेहतर सुरक्षा प्रदान करती हैं। यह एक tmpfsमाउंट है जो प्रदर्शन प्रदान करता है। इसका नकारात्मक पक्ष tmpfsयह है कि इसका उपयोग केवल छोटी फाइलें और सॉकेट रखने के लिए किया जाना चाहिए।

मैं की एक शादी के रूप में यह देखो /tmpऔर /var/run


5 साल के बाद से निश्चित तकनीक में सुधार हुआ है
यस

10

हाँ / tmp सामान्य उपयोग के लिए है। यहाँ और यहाँ देखें फाइलसिस्टम पदानुक्रम मानक पर।

/ tmp / अस्थायी फाइलें (यह भी देखें / var / tmp)। अक्सर सिस्टम रिबूट के बीच संरक्षित नहीं किया जाता है।

पीडीएफ में सूचीबद्ध कुछ और विवरणों के साथ।


2

आप समय से पहले एक भी अस्थायी निर्देशिका नाम नहीं चुन सकते जो किसी भी लिनक्स सिस्टम के लिए काम करेगा। वास्तव में, आप विंडोज पर ऐसा नहीं कर सकते। अस्थायी फ़ोल्डरों पर विकिपीडिया के लेख के अनुसार , विंडोज पर अस्थायी निर्देशिका पर्यावरण चर TEMP द्वारा निर्धारित की जाती है। यदि आप केवल c:\Tempएक विंडोज सिस्टम पर एक अस्थायी निर्देशिका के रूप में उपयोग कर रहे थे जो TEMP को किसी अन्य चीज़ पर सेट करता है, तो अस्थायी निर्देशिका चुनने के लिए आपकी XML फ़ाइल का उपयोग करने वाला कोई भी प्रोग्राम विफल हो जाएगा।

संक्षेप में, सिस्टम अस्थायी निर्देशिका उन सभी आधुनिक ऑपरेटिंग सिस्टमों पर पर्यावरण द्वारा निर्धारित की जाती है, जिनके बारे में मुझे पता है, जिसमें विंडोज और कोई भी UNIX जैसी प्रणाली शामिल है। एक एकल स्थैतिक पथ को सेट करना क्योंकि आपकी अस्थायी निर्देशिका केवल तब तक काम करेगी जब तक कि डिफॉल्ट्स को बदल नहीं दिया गया हो।

वैसे भी, एक विशिष्ट लिनक्स सिस्टम में मानक अस्थायी निर्देशिका है /tmp। यह C:\Tempइस अर्थ में बराबर है कि यह केवल डिफ़ॉल्ट अस्थायी निर्देशिका है, सार्वभौमिक नहीं। यहां तक कि अगर /tmp, उपलब्ध है एक उपयोगकर्ता (या सिस्टम) अस्थायी वातावरण चर की स्थापना की है, तो वह चर के मूल्य के बजाय इस्तेमाल किया जाना चाहिए।

आप उपयोगकर्ता की होम निर्देशिका के सापेक्ष एक अस्थायी निर्देशिका चुनने का प्रयास कर सकते हैं, जिसे आप बना सकते हैं।


मेरे मामले में, मुझे लगता है कि यह एक सुरक्षित धारणा है कि चूक अभी भी जारी है, लेकिन यह निश्चित रूप से ध्यान में रखना अच्छा है।
पॉप

बैश, जीसीसी, इंकस्केप या लिनेक्स जैसे कुछ कार्यक्रम TMPDIRपर्यावरण चर का उपयोग करते हैं।
क्रिस्टियन सियुपिटु

@Ryan, /tmpअस्थायी चर की अध्यक्षता क्यों करता है ?
पचेरियर

0

प्रारंभिक प्रश्न था: क्या लिनक्स में एक मानक अस्थायी निर्देशिका है। यदि हां, यह कहां स्थित है? Tmp फ़ोल्डर (s) यहां पाए जाते हैं: फ़ाइल सिस्टम / tmp और फ़ाइल सिस्टम / var / tmp / tmp सामग्री को हटाया जा सकता है - यदि आप जानते हैं कि कौन-सी फ़ाइलों / फ़ोल्डरों की आवश्यकता होती है, तो विभिन्न ऐप्स द्वारा "आवश्यक" नहीं है। आधार। अपरिवर्तित फाइलें आमतौर पर ऐप द्वारा उस बिंदु पर ही ऐप को सुविधाजनक बनाने के लिए डाउनलोड की जाती हैं- इसलिए ऐप के प्रदर्शन के बाद इसकी आवश्यकता नहीं होती है। / Var / tmp फ़ोल्डर को बिल्कुल भी नहीं छुआ जाना चाहिए।


1
यह उत्तर स्वीकृत उत्तर की तुलना में अधिक जानकारी प्रदान नहीं करता है, इसलिए यह काफी बेकार है।
zx485
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.