অস্থায়ী ফাইলগুলি / টেম্প বা বর্তমান কার্যনির্বাহী ডিরেক্টরিতে সংরক্ষণ করা উচিত?


76

আমার একটি প্রোগ্রাম রয়েছে যাতে অস্থায়ী ফাইল তৈরি করা দরকার। এটি ক্লাস্টার মেশিনের জন্য লেখা।

যদি আমি এই ফাইলগুলিকে একটি সিস্টেম-ব্যাপী অস্থায়ী ডিরেক্টরিতে সংরক্ষণ করে (যেমন /tmp:), কিছু ব্যবহারকারী প্রোগ্রাম / ব্যর্থতার অভিযোগ করেছেন যে তাদের / টেম্পে সঠিক অ্যাক্সেস নেই। তবে আমি যদি সেই ফাইলগুলি কার্যক্ষম ডিরেক্টরিতে সংরক্ষণ করি তবে সেই ব্যবহারকারীরাও অভিযোগ করেছিলেন যে তারা এই রহস্যজনক ফাইলগুলি দেখতে চান না।

কোনটি একটি ভাল অনুশীলন? আমার কি জোর দেওয়া উচিত যে সঞ্চয় করা /tmpসঠিক পন্থা এবং "উদ্দিষ্ট হিসাবে কাজ করা" হিসাবে উদ্বোধনের কোনওরকম ব্যর্থতা রক্ষা করা (যেমন আপনার প্রশাসনের কাছে যথাযথ অনুমতি / অ্যাক্সেসের জন্য জিজ্ঞাসা করুন)?


3
প্রোগ্রামটি অ্যাক্সেস করেছে কিনা এবং যদি অন্য কোনও অস্থির সন্ধান না পায় তা পরীক্ষা করুন
ratchet freak

24
যদি আপনার অ্যাডমিন অ্যাক্সেসের অধিকারগুলি ভুল করে, তবে অবশ্যই এটি ঠিক করা উচিত। আপনার প্রশাসক যদি আপনার প্রোগ্রামে মৃত্যুদন্ডের অধিকারগুলি যুক্ত করতে ভুলে যান তবে আপনি কী করবেন?
ডক ব্রাউন

7
আপনি বেশিরভাগ উইন্ডো সিস্টেমে / টিএমপি পাবেন না, তবে একটি ওএস কল রয়েছে যা আপনাকে বলবে যে টেম্প ফাইলগুলি কোথায় স্থাপন করা যায়।
ইয়ান

28
যদি কিছু লোকের /tmpইউনিক্সের মতো সিস্টেমে অ্যাক্সেস না থাকে তবে এটি ভুল কনফিগার করা হয়েছে। সুপারভাইজারের মতো কিছু করা উচিত chmod 1777 /tmp
মুসিফিল

12
সাবধান থাকুন যে $ টিএমপিডিআইআর /tmp/আপনার পরিবর্তে ব্যবহার করা উচিত তার চেয়ে আলাদা কোনও পথে নির্দেশ করতে পারে । উত্তরগুলির কয়েকটি দেখুন;)
মার্সেলেম

উত্তর:


141

অস্থায়ী ফাইলগুলি বেশ কয়েকটি কারণে অপারেটিং সিস্টেমের অস্থায়ী ডিরেক্টরিতে সংরক্ষণ করতে হয়:

  • অপারেটিং সিস্টেমের নামগুলি অনন্য হতে পারে তা নিশ্চিত করে এই ফাইলগুলি তৈরি করা খুব সহজ করে

  • বেশিরভাগ ব্যাকআপ সফ্টওয়্যার অস্থায়ী ফাইলগুলি অন্তর্ভুক্ত ডিরেক্টরিগুলি কী তা জানে এবং এগুলি এড়িয়ে যায়। আপনি যদি বর্তমান ডিরেক্টরি ব্যবহার করেন তবে ব্যাকআপগুলি ঘন ঘন করা গেলে এটি ইনক্রিমেন্টাল ব্যাকআপগুলির আকারের উপর একটি গুরুত্বপূর্ণ প্রভাব ফেলতে পারে ।

  • অস্থায়ী ডিরেক্টরিটি আলাদা ডিস্কে বা র‍্যামে থাকতে পারে, রিড-রাইটিং অ্যাক্সেসকে অনেক বেশি দ্রুত করে তোলে ।

  • অস্থায়ী ফাইলগুলি প্রায়শই রিবুটের সময় মুছে ফেলা হয় (যদি তারা রামডিস্কে থাকে তবে সেগুলি কেবল হারিয়ে যায়)। এটি যদি আপনার অ্যাপ্লিকেশন সর্বদা টেম্প ফাইলগুলি সঠিকভাবে মুছে না রাখে (উদাহরণস্বরূপ ক্রশের পরে) অসীম বৃদ্ধির ঝুঁকি হ্রাস করে ।

    ওয়ার্কিং ডিরেক্টরি থেকে টেম্প ফাইলগুলি সাফ করা সহজেই অগোছালো হয়ে উঠতে পারে যদি ফাইলগুলি অ্যাপ্লিকেশন এবং ব্যবহারকারী ফাইলগুলির সাথে একত্রে সংরক্ষণ করা হয়। আপনি বর্তমান ডিরেক্টরিতে একটি পৃথক ডিরেক্টরি তৈরি করে এই সমস্যাটি প্রশমিত করতে পারেন, তবে এটি অন্য কোনও সমস্যার কারণ হতে পারে:

  • পথ দৈর্ঘ্য কিছু প্ল্যাটফর্মের উপর অত্যন্ত দীর্ঘ হতে পারে। উদাহরণস্বরূপ, উইন্ডোজে কিছু এপিআই, ফ্রেমওয়ার্ক এবং অ্যাপ্লিকেশনগুলির জন্য পাথ সীমাটি ভয়ানক , যার অর্থ যদি বর্তমান ডিরেক্টরিটি ইতিমধ্যে গাছের শ্রেণিবিন্যাসের গভীরে থাকে এবং আপনার অস্থায়ী ফাইলগুলির নামগুলি দীর্ঘ হয়।

  • সার্ভারগুলিতে অস্থায়ী ডিরেক্টরিটির বিকাশ প্রায়শই সরাসরি করা হয়। আপনি যদি অন্য কোনও ডিরেক্টরি ব্যবহার করেন তবে এটি পর্যবেক্ষণ করা হতে পারে না এবং পুরো ডিস্কটি পর্যবেক্ষণ করা সহজেই বুঝতে পারে না যে এটি টেম্প ফাইলগুলি আরও বেশি করে স্থান নেয়।

অ্যাক্সেস অস্বীকার ত্রুটি হিসাবে, নিশ্চিত করুন যে আপনি অপারেটিং সিস্টেমটিকে আপনার জন্য একটি অস্থায়ী ফাইল তৈরি করতে দিয়েছেন। অপারেটিং সিস্টেম, উদাহরণস্বরূপ, কোনও প্রদত্ত ব্যবহারকারীর জন্য, ব্যবহার করা উচিত /tmpবা C:\Windows\tempবাদে অন্য কোনও ডিরেক্টরি ব্যবহার করা উচিত know এইভাবে, সরাসরি সেই ডিরেক্টরিগুলি অ্যাক্সেস করার মাধ্যমে, আপনি সত্যিই একটি অ্যাক্সেস অস্বীকৃত ত্রুটির মুখোমুখি হতে পারেন।

অপারেটিং সিস্টেম কল ব্যবহার করার পরেও যদি আপনি অ্যাক্সেস অস্বীকার করে পান তবে ভাল, এর সহজ অর্থ হল মেশিনটি খারাপভাবে কনফিগার করা হয়েছিল; এটি ইতিমধ্যে ব্লারফ্লার দ্বারা ব্যাখ্যা করা হয়েছিল । এটি মেশিনটি কনফিগার করতে সিস্টেম প্রশাসকের উপর নির্ভর করে; আপনাকে আপনার আবেদন পরিবর্তন করতে হবে না।

অস্থায়ী ফাইল তৈরি করা অনেক ভাষায় সোজা। কয়েকটি উদাহরণ:

  • ব্যাশ:

    # The next line will create a temporary file and return its path.
    path="$(mktemp)"
    echo "Hello, World!" > "$path"
    
  • পাইথন:

    import tempfile
    
    # Creates a file and returns a tuple containing both the handle and the path.
    handle, path = tempfile.mkstemp()
    with open(handle, "w") as f:
        f.write("Hello, World!");
    
  • সি #:

    // Creates a file and returns the path.
    var path = Path.GetTempFileName();
    File.WriteAllText(path, "Hello, World!");
    
  • পিএইচপি:

    # Creates a file and returns the handle.
    $temp = tmpfile();
    fwrite($temp, "Hello, World!");
    fclose($temp);
    
  • রুবি:

    require "tempfile"
    
    # Creates a file and returns the file object.
    file = Tempfile.new ""
    file << "Hello, World!"
    file.close
    

মনে রাখবেন যে কিছু ক্ষেত্রে যেমন পিএইচপি এবং রুবিতে হ্যান্ডেলটি বন্ধ হয়ে গেলে ফাইলটি সরানো হয়। ভাষা / কাঠামোর সাথে বান্ডিলযুক্ত লাইব্রেরিগুলি ব্যবহার করার এটি একটি অতিরিক্ত সুবিধা।


2
"অপারেটিং সিস্টেমটি আপনার জন্য একটি অস্থায়ী ফাইল তৈরি করতে দিয়েছিল তা নিশ্চিত করুন" এর অর্থ কী? সুতরাং উদাহরণস্বরূপ পরিবর্তে fopen("/tmp/mytmpfile", "w");অস্থায়ী ফাইলগুলি হ্যান্ডেল করার জন্য আমার কিছু সিস্টেম কল করা উচিত?
সাইমন

30
@ গুরকা: tmpfile(3)আপনার অস্থায়ী ফাইলগুলি তৈরি করতে কল করা উচিত , বা কমপক্ষে mktemp(3)ফাইলের নাম তৈরি করার জন্য কল করা উচিত।
টিএমএন

3
@ টিএমএন: এগুলি কেবল গ্রন্থাগার ফাংশন যা ব্যবহারকারীর স্পেসে চলে এবং অপারেটিং সিস্টেমের দেওয়া অনুমতি ত্রুটিটিকে বাইপাস করার মতো কোনও জাদু তাদের নেই।
musifhil

25
@ মুসিফিল টেম্পফিল এবং এমকেটেম্প উভয় অস্থায়ী ফাইলের জন্য পথ নির্ধারণ করতে বাহ্যিক ভেরিয়েবল ব্যবহার করে। এগুলি / টিএমপি / এর চেয়ে অন্য কোনও ডিরেক্টরিতে নির্দেশিত হতে পারে, সম্ভবত প্রতি ব্যবহারকারী ডিরেক্টরি। / Tmp / এ ম্যানুয়ালি একটি ফাইল নাম তৈরি করার চেষ্টা ব্যর্থ হতে পারে, যখন tmpfile এবং mktemp বৈধ পাথ ফিরে আসবে।
পাইপ

2
@ মুসিফিল: আমি কখনও বলিনি যে তারা অনুমতি সমস্যার সমাধান করবে, আমি ফাইলগুলি তৈরি করতে সিস্টেম কলগুলি ব্যবহার করার বিষয়ে তার প্রশ্নের জবাব দিচ্ছিলাম।
টিএমএন

33

আমি কি জোর দিয়ে বলছি / টেম্পে সঞ্চয় করা সঠিক পন্থা এবং "উদ্দেশ্য হিসাবে কাজ করা" হিসাবে কোনও ব্যর্থতার পক্ষে প্রতিরক্ষা করা (যেমন আপনার প্রশাসনের কাছে যথাযথ অনুমতি অ্যাক্সেসের জন্য জিজ্ঞাসা করুন)?

এর জন্য মানদণ্ড রয়েছে এবং আপনি যে সর্বোত্তম কাজটি করতে পারেন তা হ'ল সেগুলি মেনে চলতে।

পজিএক্স, যার পরে আপনি যে কোনও তাত্পর্যপূর্ণ নন-মেইনফ্রেম ওএস অনুসরণ করে যাচ্ছেন সম্ভবত এটির দ্বারা পরিবেশের মাধ্যমে পুনর্গঠনযোগ্য ডিফল্ট মান ব্যবহার করে একটি ডিরেক্টরিতে অনন্য-অস্থায়ী ফাইল তৈরির বিধান রয়েছে:

  • সি stdio.hহেডারটি optionচ্ছিকভাবে একটি P_tmpdirম্যাক্রো অন্তর্ভুক্ত করতে পারে যা সিস্টেমের অস্থায়ী ডিরেক্টরিটির নাম দেয়।
  • TMPDIRঅস্থায়ী ফাইলগুলির অবস্থান পরিবর্তনের জন্য আধ্যাত্মিক পরিবেশ পরিবর্তনশীল। পক্সিক্সের আগে, অন্যান্য ভেরিয়েবলগুলি ব্যবহৃত হত, সুতরাং আমি তার প্রথমটির সাথে যেতে চাই TMP, TEMPDIRএবং TEMPএর কোনও মান থাকে, punting এবং সিস্টেমের ডিফল্ট ব্যবহার না করে যদি সেগুলির কোনও উপস্থিত না থাকে।
  • mkstemp()এবং tempfile()ফাংশন অনন্য অস্থায়ী ফাইল উত্পন্ন করবে।

যদি আপনার ব্যবহারকারীদের অস্থায়ী ফাইলগুলি তৈরি করার ক্ষমতা বঞ্চিত করা হচ্ছে, তবে সিস্টেমটি ভুল কনফিগার করা হয়েছে বা প্রশাসকরা এ জাতীয় বিষয়গুলিতে তাদের নীতি কী তা পরিষ্কার করছেন না। এই ক্ষেত্রে, আপনি খুব দৃ ground় ভিত্তিতে বলতে চাই যে আপনার প্রোগ্রামটি একটি সু-প্রতিষ্ঠিত পোর্টেবিলিটি স্ট্যান্ডার্ডের সাথে সঙ্গতিপূর্ণ এবং পরিবেশের ভেরিয়েবলগুলি স্ট্যান্ডার্ড নির্দিষ্ট করে তার ব্যবহারটি পরিবর্তন করা যেতে পারে।


P_tmpdirstdio.hসি ভাষার স্পেসিফিকেশন দ্বারা সংজ্ঞায়িত অংশ হিসাবে নয় । এটি পসিক্স বা এসভিআইডি দ্বারা সংজ্ঞায়িত করা হতে পারে।
মুসিফিল

1
@ মুসিফিল: (বর্তমানে স্পষ্ট করা) উত্তর দ্বারা সূচিত, এটি পসিক্সের অংশ part (প্রযুক্তিগতভাবে, এটি একটি এক্স / ওপেন সিস্টেম এক্সটেনশান যা পসিক্স অন্তর্ভুক্ত করেছে pub পাবস.ওপেনগ্রুপ.org / অনলাইনপবস / 009695399 / basedefs / stdio.h.html দেখুন ))
ব্লারফ্লাল

উপরোক্ত সকলের সাথে পুরোপুরি একমত দৃ example ়তা এবং গোপনীয়তার জন্য pam_tmpdirএই সেটগুলি TMPDIRএবং TMPপ্রতিটি ব্যবহারকারীর জন্য আলাদা হওয়া - লিনাক্স সিস্টেমগুলির একটি ভাল উদাহরণ is TMPDIRএকটি একক কমান্ডের জন্য সেট করতে সক্ষম হওয়াও দরকারী - যদি আপনার গতির জন্য কোনও র‌্যাম ফাইল সিস্টেমে আপনার সাধারণ অস্থায়ী ডিরেক্টরি থাকে তবে আপনাকে এই কমান্ডগুলির জন্য এটি করার প্রয়োজন হতে পারে যা বিশাল অস্থায়ী ফাইল তৈরি করে (যেমন একটি দৈত্য sort, উদাহরণস্বরূপ)। আপনার ব্যবহারকারীরা যে স্ট্যান্ডার্ডগুলি / সম্মেলনগুলি প্রত্যাশা করেন তা এড়িয়ে যাবেন না!
টবি স্পিড

অস্থায়ী ফাইলগুলির অবস্থানের জন্য অবশ্যই পরিবেশটি পরীক্ষা করুন এবং কখনও হার্ড-কোড / টিএমপি নেই। একটি ভাগ করা টিএমপি-এর সুরক্ষার সমস্যা রয়েছে বলে আমি প্রায়শই দেখেছি যে একটি প্রশমনটি হ'ল প্রতি-ব্যবহারকারী / টিএমপি ডিরেক্টরিগুলি অন্য কারও জন্য পঠন-লিখনের অনুমতি ছাড়াই তৈরি করা। এটি সম্ভাব্য জাতি পরিস্থিতি এবং সিমলিংক আক্রমণগুলি সরিয়ে দেয়।
জ্যান লিংস

9

টেম্প-ফাইল-ডিরেক্টরিটি অত্যন্ত অপারেটিং সিস্টেম / পরিবেশ নির্ভর। উদাহরণস্বরূপ সুরক্ষার কারণে একটি ওয়েব-সার্ভার-টেম্প দির ওএস-টেম্প-ডির থেকে পৃথক।

এমএস-উইন্ডোজগুলির নীচে প্রতিটি ব্যবহারকারীর নিজস্ব টেম্প-ডির থাকে।

আপনার যদি এর জন্য কোনও ক্রিয়াকলাপ উপলব্ধ থাকে তবে এর জন্য আপনার ক্রিয়েটেম্পফিল () ব্যবহার করা উচিত ।


1
উইন্ডোজে লুকানো ওএসের সীমাবদ্ধতার বিষয়ে কেবল সচেতন হন। আমরা শক্তভাবে আবিষ্কার করেছি যে কোনও ফোল্ডারে ফাইলের সর্বাধিক সংখ্যা 65,565 এর মধ্যে সীমাবদ্ধ। নিশ্চিত, যে ফাইল অনেক কিছু আছে, এবং নিশ্চিত করুন, আপনি কখনও উচিত বোধগম্যভাবে যে অনেক কাছাকাছি ডিম্বপ্রসর আছে। তবে আপনি কি নিশ্চিত যে প্রতিটি অ্যাপ সময়মতো এবং ভাল আচরণের সাথে নিজের পরে পরিষ্কার হয়ে যায়?
মাইক হফার

আহ, আমি আপনার মন্তব্যটি অনেক দেরিতে দেখেছি। আমি ঠিক উপরের একই লিখেছি। বিটিডব্লিউ সীমাটি মূলত এনটিএফএস নয়, গেটটাইমফাইনেম () ফাংশনের মেকানিক্সের কারণে। আপনি উল্লিখিত ফোল্ডার সীমাটি কেবল FAT32 এ প্রযোজ্য
জেনসজি

9

পূর্ববর্তী উত্তরগুলি সঠিক হলেও বেশিরভাগ বৃহত স্কেল কম্পিউটার ক্লাস্টারের জন্য বৈধ নয়।

কম্পিউটার ক্লাস্টারগুলি সর্বদা মজাদার জন্য সাধারণত মেশিনগুলির জন্য স্ট্যান্ডার্ড কনভেনশনগুলি অনুসরণ করে না এবং সিসাদমিনদের সাথে এটি নিয়ে আলোচনা করার কোনও মানে হয় না।

আপনার বর্তমান ডিরেক্টরিটি কেন্দ্রীয় ফাইল সিস্টেমকে উল্লেখ করছে, যা নেটওয়ার্কের মাধ্যমে অ্যাক্সেস করা হয়। এটি কেবল ধীরে ধীরে নয়, বাকি ব্যবহারকারীদের জন্য সিস্টেমে বোঝা চাপায়, সুতরাং আপনি যতটা না লিখেছেন তা ব্যবহার করা উচিত নয় এবং কাজটি ক্র্যাশ হয়ে গেলে আপনি এ থেকে পুনরুদ্ধার করতে পারবেন।

কম্পিউটিং নোডগুলির নিজস্ব হার্ড ড্রাইভ রয়েছে, এটি দ্রুততম ফাইল ফাইল উপলব্ধ এবং আপনার কী ব্যবহার করা উচিত। ক্লাস্টার ডকুমেন্টেশন তোমাকে বলব? এটা কি সাধারণত /scratch, /tmp/[jobid], অথবা কিছু অ মান পরিবেশের পরিবর্তনশীল ( $SNIC_TMPবেশী আমি ব্যবহার এক)।

সুতরাং, আমি যা প্রস্তাব দিই তা এটি ব্যবহারকারী-কনফিগারযোগ্য করে তুলছে। আপনার লেখার অ্যাক্সেস থাকা ডিফল্টগুলি প্রথম হতে পারে:

  • $TMPDIR
  • tmpfile
  • /tmp
  • .

তবে এই পদ্ধতির সাথে স্বল্প সাফল্যের হার আশা করুন এবং একটি বড় ফ্যাট সতর্কতা নির্ধারণ নিশ্চিত করুন।

সম্পাদনা: এটিকে ব্যবহারকারী-সেট হতে বাধ্য করার জন্য আমি আরও একটি কারণ যুক্ত করব। আমার ক্লাস্টারের একটি $TMPDIRসেট করেছে /scratch, এটি ব্যবহারকারী-লিখনযোগ্য এবং স্থানীয় হার্ড ড্রাইভে। তবে, ডকুমেন্টেশন বলছে যে আপনি বাইরে যা কিছু লিখবেন /scratch/[jobid]তা কোনও সময়ে মুছে ফেলা হতে পারে এমনকি রানের মাঝামাঝি সময়েও। সুতরাং, আপনি যদি মানগুলি এবং বিশ্বাস অনুসরণ করেন তবে আপনি $TMPDIRডিবাগ করা খুব শক্ত, এলোমেলো ক্র্যাশগুলির মুখোমুখি হবেন। সুতরাং, আপনি গ্রহণ করতে পারেন $TMPDIR, তবে এটি বিশ্বাস করবেন না।

অন্য কয়েকটি ক্লাস্টারে এই ভেরিয়েবলটি সঠিকভাবে কনফিগার করা আছে, সুতরাং আপনি স্পষ্টভাবে বিশ্বাসের জন্য একটি বিকল্প যুক্ত করতে পারেন $TMPDIR, অন্যথায়, একটি বড়, চর্বি সতর্কতা নির্গত করে।


1
পূর্বের উত্তরগুলি হ'ল কোনটি?
তুলাইনস কর্ডোভা

2
সুতরাং আপনি এখানে যা বলছেন তা হ'ল কারণ এমন কিছু ক্লাস্টারগুলি যেখানে তাদের অস্থায়ী ফাইলগুলি লিখতে হবে প্রোগ্রামগুলি বলার জন্য একটি সুপ্রতিষ্ঠিত মানকে মেনে চলা তুচ্ছ পদক্ষেপ গ্রহণ করে না, এটি প্রোগ্রামের জন্য প্রয়োজন অতিরিক্ত ক্লাস্টার-নির্দিষ্ট কাস্টমাইজেশন। আপনি যদি আমাকে জিজ্ঞাসা করেন খুব দুর্বল চা।
blrfl

@ ব্লারফ্লাল আপনি যতটা চান মানদণ্ডগুলি তত্পর করতে পারেন এবং এমন কোড লিখুন যা তাদের সাথে পুরোপুরি সূক্ষ্মভাবে মেনে চলে এবং সর্বদা ক্রাশ হয়; আপনি যে প্রতিটি ক্লাস্টার ব্যবহার করেন তার সিস্টেমেডমিনদের সাথে লড়াই করার চেষ্টা করতে পারেন; অথবা আপনি আপনার বিশ্বাসকে গ্রহণ করতে পারেন এবং এটিকে কনফিগার করতে পারেন। এছাড়াও, এইচপিসিতে সাধারণত ক্লাস্টারের নির্দিষ্টকরণের সাথে কোডটি অভিযোজিত করা প্রয়োজন (উপলব্ধ র‌্যাম, ফাইল সিস্টেমগুলির আপেক্ষিক গতি, এমপিআই বাস্তবায়ন, সংস্থানগুলির সাধারণ প্রাপ্যতা ...), কোনও "এক আকার সবই ফিট করে না"।
ডেভিডম

@ ডেভিডমাহ: বোঝা গেল, তবে বিষয়টি নয়। মানকটি একটি বিস্ময়কর উপায়ে কনফিগারযোগ্য করে তোলে । যদি আমি জ্ঞাত-মানানসই কোডটি এমন কোনও ক্লাস্টারে নিয়ে যাই যেখানে মান অনুসরণ করা হয় না, আমাকে এটিকে ঠিক এক জায়গায় সেট করতে হবে , যেমন এন্ট্রি পয়েন্টে। বাকি কোডটির নিরীক্ষণ, সংশোধন এবং ভুল হওয়ার ঝুঁকির মধ্যে এটি একটি কম জিনিস।
blrfl

1

অনেকগুলি অ্যাপ্লিকেশনের জন্য আপনার অস্থায়ী ফাইলগুলি অন্তর্ভুক্ত করা $XDG_RUNTIME_DIRবা $XDG_CACHE_HOMEঅন্যান্য এক্সডিজি ডায়ারগুলি অ- অস্থায়ী ফাইলগুলির জন্য বিবেচনা করা উচিত । সেগুলি পরিবেশে সুস্পষ্টভাবে পাস না করা হলে তাদের গণনা করার জন্য নির্দেশাবলীর জন্য, এক্সডিজি ভিত্তিক বৈশিষ্টটি দেখুন বা ইতিমধ্যে সেই অংশটি কার্যকর করে এমন একটি লাইব্রেরি সন্ধান করুন।

দ্রষ্টব্য, তবে $XDG_RUNTIME_DIRএটি একটি নতুন সংযোজন এবং সুরক্ষা উদ্বেগের কারণে পুরানো সিস্টেমগুলির জন্য কোনও স্ট্যান্ডার্ড ফলব্যাক নেই।

যদি এগুলির দুটিই উপযুক্ত না /tmpহয় তবে সঠিক জায়গা। আপনার বর্তমান ডিরেক্টরিটি লিখনযোগ্য বলে ধরে নেওয়া উচিত নয়


-2

এটি আরও বিকল্পের মতো তবে আপনি ফপেন () এর পরে ফাইলটিকে অনিচ্ছাকৃতভাবে লিঙ্কযুক্ত করতে পারেন। এটি ক্রোসের ব্যবহারের প্যাটার্নের উপর নির্ভর করে।

ফাইলগুলি লিঙ্কযুক্ত করা যদি এটি করা যায় তবে বিভিন্ন উপায়ে সহায়তা করে:

  • ফাইল দেখা যায় না - ব্যবহারকারী এটি দেখতে পান না।
  • অন্যান্য প্রক্রিয়া থেকে ফাইল দেখা যায় না - ভুলক্রমে ফাইলটি সংশোধন করার অন্যান্য প্রক্রিয়া নেই।
  • প্রোগ্রাম ক্রাশ হলে সহজ পরিষ্কার।

ফাইলগুলি / টেম্পে তৈরি করতে হবে। যদি ব্যবহারকারীদের সেখানে ফাইল তৈরি করার অধিকার না থাকে তবে এর অর্থ সিস্টেম মিস কনফিগার করা আছে।

ব্যবহারকারীদের হোম ডিরেক্টরিতে ফাইল তৈরি করা যায় না। প্রচুর ব্যবহারকারীর, যেমন "কেউ নয়", "www-ডেটা" এবং আরও অনেকের, তাদের হোম ডিরেক্টরিতে লেখার অধিকার নেই, অথবা তারা এমনকি ক্রোট () - এড। নোট করুন যে এমনকি ক্রুট পরিবেশে / টিএমপি এখনও বিদ্যমান।


যদিও এটি সাধারণভাবে একটি ভাল ধারণা হতে পারে তবে এটি যে ডিরেক্টরিতে ফাইল তৈরি করতে হবে
সেগুলিতে

4
এটি অস্থায়ী ফাইলগুলি কোথায় রাখবে সে প্রশ্নেরও উত্তর দেয় না।
blrfl

আমি বিশ্বাস করি আমার উত্তরটি কোনওভাবে গুরুত্বপূর্ণ। আমি সম্পাদনা করেছি, সম্ভবত এইভাবে আরও পরিষ্কার।
নিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.