আমি / tmp এর ভিতরে থাকা কোনও ফোল্ডারটি পরিষ্কার হওয়া থেকে কীভাবে আটকাব?


12

এই প্রশ্নটি আমার বিকাশকারী ল্যাপটপে উবুন্টু 14.10 সম্পর্কে।

আমি এতে একটি ফোল্ডার পেয়েছি সেখানে একটি /tmpঅস্থায়ী জিনিস রাখার জন্য একটি অ্যাপ্লিকেশন ব্যবহার করে। এই অ্যাপ্লিকেশনটি সাধারণত আমার হোমডিরে একটি অস্থায়ী ফোল্ডার তৈরি করে এবং পরে এটি মুছে দেয়। কিছু কারণের জন্য যা হোমডির এনক্রিপ্ট করা অবস্থায় কাজ করে না। সুতরাং পরিবর্তে, আমি /tmp/fooআমার বাড়ির অভ্যন্তরে একটি সিমিলিংক তৈরি করেছি। আমার অ্যাপ্লিকেশনটি সেখানে লিখতে এবং এটি অস্থায়ী সাবফোল্ডার তৈরি করতে পারে।

/tmp/fooআমি যখনই আমার মেশিনটি রিবুট করি ততবার এখন মুছে ফেলা হবে। এখন অবধি আমি পুনরায় বুট করার পরে ম্যানুয়ালি ফোল্ডারটি পুনরায় তৈরি করেছি। এখন আমি শিখেছি / টিএমপি ডিরেক্টরিটি কীভাবে পরিষ্কার করা হয়? যে সেখানে একটি কাজ আছে।

আমি দেখেছি /etc/init/mounted-tmp.confকিন্তু আমার বাশফু এবং বিশেষত আমার ফাইন্ডু আমি যা চাই তা করতে যথেষ্ট নয়। এই ফাইলটি থেকে একটি অংশ এখানে দেওয়া হয়েছে:

   EXCEPT='! -name .
            ! ( -path ./lost+found -uid 0 )
            ! ( -path ./quota.user -uid 0 )
            ! ( -path ./aquota.user -uid 0 )
            ! ( -path ./quota.group -uid 0 )
            ! ( -path ./aquota.group -uid 0 )
            ! ( -path ./.journal -uid 0 )
            ! ( -path ./.clean -uid 0 )
            ! ( -path "./...security*" -uid 0 )'

   # Remove all old files, then all empty directories
   find . -depth -xdev $TEXPR $EXCEPT ! -type d -delete
   find . -depth -xdev $DEXPR $EXCEPT -type d -empty -delete

আমি যা করতে চাই তা হ'ল একটি শর্ত যুক্ত করা যা এটি ভিতরে .ুকে সমস্ত কিছু মুছে দেয় /tmp/foo, তবে /tmp/fooনিজেই নয়। আমি কেমন করে ঐটি করি?


Is /tmp/fooএকটি ডিরেক্টরি অথবা একটি ফাইল?
টেরডন

একটি ডিরেক্টরি। ভিতরে ফাইল আছে।
সিমবাচ

mkdir /tmp/fooঠিক আগে যোগ করবেন না কেন end script?
হেগেন ভন ইটজেন

শুধু এফওয়াইআই (আপনি এটি ইতিমধ্যে জানেন): জুলাই 2015-এ 14.10 ইওএল পৌঁছেছে, সুতরাং আপনার যত তাড়াতাড়ি সম্ভব ভিভিডে আপগ্রেড করা উচিত।
লোও লাম

উত্তর:


20

/etc/init/mounted-tmp.confmountallপ্যাকেজের অংশ , সুতরাং সেই প্যাকেজের কোনও আপডেট এবং প্রস্তাবিত পরিবর্তনগুলি উল্টানো হবে।

$ sudo dpkg -S /etc/init/mounted-tmp.conf 
mountall: /etc/init/mounted-tmp.conf

পরিবর্তে, ফাইল সিস্টেম হাইরাচি স্ট্যান্ডার্ড (এফএইচএস) অনুযায়ী ;

সম্পর্কিত / tmp :

প্রোগ্রামগুলি অবশ্যই ধরে নিতে পারে না যে / টিএমপি-তে থাকা কোনও ফাইল বা ডিরেক্টরি প্রোগ্রামের অনুরোধের মধ্যে সংরক্ষিত আছে।

সম্পর্কিত / var / tmp :

/ Var / tmp ডিরেক্টরি সিস্টেম রিবুটের মধ্যে সংরক্ষণ করা অস্থায়ী ফাইল বা ডিরেক্টরিগুলির জন্য প্রয়োজনীয় প্রোগ্রামগুলির জন্য উপলব্ধ করা হয়। সুতরাং, / var / tmp এ সঞ্চিত ডেটা / tmp এ থাকা ডেটার চেয়ে বেশি স্থায়ী istent

সুতরাং আপনার /var/tmpপরিবর্তে আপনার প্রতীকী লিঙ্কটি ব্যবহার করা উচিত /tmp


3
আপনার যখন হাতুড়ি রয়েছে তার ক্লাসিক উদাহরণ, সমস্ত কিছুই পেরেকের মতো দেখাচ্ছে।
ওয়ার্নার সিডি

@ ওয়ার্ননার সিডি আপনি কী বলতে চেয়েছেন তা কী ব্যাখ্যা করতে পারবেন? আপনি কি বলছেন যে /var/tmpএটি একটি ভাল ধারণা নয়?
সিমবাচ

6
আপনার সমস্ত কিছু যখন একটি হাতুড়ি হয়ে যায় ... - If a person is familiar with ... a certain, single instrument, they may have a confirmation bias to believe that it is the answer to/involved in everything.আমি বলছি যে ওপি কোনও কিছু ব্যবহার করে / টিএমপি ব্যবহার করছে যা এর জন্য ব্যবহার করা হয়নি - টিএমপি-তবে-না-রাখার সমস্যাটিতে হাতুড়ি হিসাবে / টিএমপি ব্যবহার করে - tmp স্টাফ। / var / tmp হ'ল রিবুটগুলির মধ্যে রাখতে হবে, তাই এটির সঠিক উত্তর।
ওয়ার্নারসিডি

8

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

যাইহোক, আমি প্রায়শই যা করি তা হ'ল আমি নিজের বাড়িতে চাই না এমন এলোমেলো জিনিস সঞ্চয় করার জন্য / নিজের পছন্দমতো একটি ফোল্ডার তৈরি করব। মূল ওএসের নিয়ন্ত্রণের বাইরে থাকা জিনিসগুলি রাখার জন্য এটি একটি উপযুক্ত জায়গা।


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

6

তাই ভালো:

EXCEPT='! -name .
            ...
            ! ( -path "./foo" )'

   # Remove all old files, then all empty directories
   ...
   find /tmp/foo/* -depth -xdev $TEXPR -delete

উদাহরণ:

$ cd /tmp/foo/
$ mkdir 1 2 3
$ touch 3 4 5
$ find /tmp/foo/* -depth -xdev $TEXPR -delete
$ ls /tmp/foo/
$

আমি ব্যবহারকারী আপনাদের সাথে একমত নই: আপনি হয় টিএমপি ফাইল হলে ডিরেক্টরিটি পুনরায় তৈরি করে সফ্টওয়্যারটিতে এই যত্ন নিতে হবে অথবা যদি তারা টেম্প ফাইল না হয় তবে অন্য ডিরেক্টরি ব্যবহার করতে হবে that


এটি আসলে কাজ করে না। যদিও findকমান্ড কাজ করে যখন নিজে চালানোর হিসাবে প্রত্যাশিত, ডিরেক্টরি এখনও সম্পাদনা পর মুছে ফেলা হবে /etc/init/mounted-tmp.conf। মনে হচ্ছে এখানে অন্য কিছু চলছে।
টেরডন

WTH। Ehm। এর অর্থ হওয়া উচিত যে 1 ম লাইনটি ত্রুটিযুক্ত। হতে পারে এটি আপেক্ষিক হতে হবে (?)
রিনজউইন্ড

@ ইটারডন হ্যাঁ মনে হচ্ছে এটি /
টিএমপি

আমি এটি মনে করি না, আমি বিভিন্ন ক্রমচেষ্টার চেষ্টা করেছি, এমনকি -path ./fooএবং এমনকি -name '*foo*'কোনওটিই কাজ করেনি (উবুন্টু সার্ভারে ১৪.০৪)। আমি মনে করি এটি ঠিক ফাইল নয় এবং আমরা ভুল জায়গায় খুঁজছি। আপনি যা পরামর্শ দিচ্ছেন তা কাজ করা উচিত বলে মনে হয় না।
টেরডন

0

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

টাচ /tmp/foo/ddmmyy/.001_immute_me chattr + i /tmp/foo/ddmmyy/.001_immute_me


আমি যদি একটি অস্থায়ী ডিরেক্টরি পেতে চাই তা কীভাবে কার্যকর হবে?
সিমবাচ

-1

এটি চালান:

echo "if [ ! -e /etc/foo/ ]; then mkdir /etc/foo/; fi; rm -rf /etc/foo/*" > /bin/foodel; sudo chmod 755 /bin/foodel 

তারপরে এটিকে / etc / inittab এ যুক্ত করুন এখানে দেখুন: inittab ফাইলটি কোথায়? :

foo:2345:boot:/bin/foodel

এটি বুটটিতে / etc / foo তৈরি করে যদি এটি বিদ্যমান না থাকে এবং তারপরে এটি খালি করে দেয়।

এটি ব্যাশ লগইনে একই কাজ করবে:

echo "/bin/foodel" >> ~/.bashrc

উবুন্টু সংস্করণ 14 ব্যবহার করে না /etc/inittab। এটি এর ম্যানুয়াল পৃষ্ঠায় স্পষ্ট এবং দ্ব্যর্থহীনভাবে বলা আছে।
জেডিবিপি

* ফেসপালম * দুঃখিত @ জেডিবিপি, লিনাক্সের 4 টি বিভিন্ন সংস্করণ জাগল করার পরে আমার সাথে এটি ঘটে। তিনি কোডটি কোথাও কোথাও জিজ্ঞাসা করাতে জিজ্ঞাসা
ড্যানিয়েল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.