আমার বর্তমান বাশ সেশনে ওপেন ফাইল বর্ণনাকারী (এবং তারা যে ফাইলগুলি উল্লেখ করে) কীভাবে তালিকাভুক্ত করবেন


23

আমি একটি ইন্টারেক্টিভ বাশ সেশনে চলছে। আমি এক্সিকিউটিভ ব্যবহার করে কিছু ফাইল বর্ণনাকারী তৈরি করেছি এবং আমার বাশ সেশনের বর্তমান অবস্থা কী তা আমি তালিকাবদ্ধ করতে চাই।

বর্তমানে উন্মুক্ত ফাইল বর্ণনাকারীদের তালিকা দেওয়ার কোনও উপায় আছে কি?



@ কমরাজ ধন্যবাদ সুতরাং বাশ এর কোনও বিল্ট-ইন করার নেই? আমার লিনাক্স-নির্দিষ্ট বৈশিষ্ট্যগুলি ব্যবহার করা দরকার?
ড্যানগনফাস্ট

bashকার্নেলের অংশ নয়, সুতরাং এটি জানতে পারে না যে অন্যান্য প্রক্রিয়াগুলি কী করছে, এমনকি এটি যা শুরু হয়েছিল সেগুলিও।
জুলি পেলেটিয়ার

@ জুলিপেল্টিয়ার: তবে শিশু প্রক্রিয়াগুলি পিতামাতার প্রক্রিয়ার ফাইল বর্ণনাকারী পরিবর্তন করে না, তাই না?
ডাঙনফেষ্ট

উত্তর:


27

হ্যাঁ, এটি সমস্ত উন্মুক্ত ফাইল বর্ণনাকারী তালিকাভুক্ত করবে:

$ ls -la /proc/$$/fd
total 0
dr-x------ 2 sorontar sorontar  0 Dec 28 00:56 .
dr-xr-xr-x 9 sorontar sorontar  0 Dec 28 00:56 ..
lrwx------ 1 sorontar sorontar 64 Dec 28 00:56 0 -> /dev/pts/6
lrwx------ 1 sorontar sorontar 64 Dec 28 00:56 1 -> /dev/pts/6
lrwx------ 1 sorontar sorontar 64 Dec 28 00:56 2 -> /dev/pts/6
lrwx------ 1 sorontar sorontar 64 Dec 28 00:56 255 -> /dev/pts/6
l-wx------ 1 sorontar sorontar 64 Dec 28 00:56 4 -> /home/sorontar/testfile.txt

অবশ্যই, যথারীতি: 0 টি স্টিডিন, 1 টি স্টাডআউট এবং 2 স্টার্ডার।
চতুর্থটি এই ক্ষেত্রে একটি খোলা ফাইল (লেখার জন্য)।


এটি কেবল বর্তমান প্রক্রিয়াটির তালিকাবদ্ধ করে, এর সন্তান বা পিতামাতার নয়।
জুলি পেলেটিয়ার

@ জুলিপেল্টিয়ের প্রশ্নের শিরোনামটি বলেছে 'আমার বর্তমান বাশ সেশন'। আমি কি ভুল বুঝতে পারি?
sorontar

@ জুলিপেল্টিয়ার: বাচ্চারা বা আমার বর্তমান বাশ সেশনের পিতামাতার দ্বারা ব্যবহৃত ফাইল বিবরণকারীগুলিতে আমি কেন আগ্রহী হব? আমি কেবলমাত্র আমার বর্তমান বাশ সেশন দ্বারা ব্যবহৃত ফাইল বিবরণকারীগুলিতে আগ্রহী।
ড্যাংগনফস্ট

@ ডেলাভনোগ: তাহলে ভাল। যদি এটি আপনার প্রশ্নের উত্তর দেয় তবে আপনার এটির মতো চিহ্নিত করা উচিত।
জুলি পেলেটিয়ার

4

ধরে নিই যে আপনি যে কোনও টার্মিনালের সাথে সংযুক্ত ফাইলের বর্ণনাকারীদের তালিকা করতে চান, আপনি lsof/ fuserবা অনুরূপ ব্যবহার করতে পারেন :

$ lsof -p $$ 2>/dev/null | awk '$NF ~ /\/pts\//'
bash    32406 foobar    0u   CHR 136,31      0t0      34 /dev/pts/31
bash    32406 foobar    1u   CHR 136,31      0t0      34 /dev/pts/31
bash    32406 foobar    2u   CHR 136,31      0t0      34 /dev/pts/31
bash    32406 foobar    3u   CHR 136,31      0t0      34 /dev/pts/31
bash    32406 foobar  255u   CHR 136,31      0t0      34 /dev/pts/31

এই সরঞ্জামগুলি মূলত বিশ্লেষণ করে /proc, সুতরাং আপনি কেবল /proc/$$/fd/খুব অ্যাক্সেস করতে পারেন যেমন:

ls /proc/$$/fd/*

2
\/pts\/প্রত্যাখ্যান করা ফাইলগুলির নির্বাচনগুলি যেমনexec 4>testfile.txt
সোরন্টার

@ সোরন্টার ইয়েপ, যেমন আমি বলেছিলাম যে এটি কেবল কোনও টার্মিনালের সাথে সংযুক্ত ব্যক্তিদের তালিকাবদ্ধ করার জন্য।
হিমাইল 5

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