ড্যাশ ফাইলগুলি কীভাবে পড়বেন


15

আমি কীভাবে টার্মিনাল থেকে ড্যাশ ফাইলটি সীমানা ছাড়াই পড়তে পারি ./

উদাহরণস্বরূপ একটি পড়তে - fileআমরা এটি দ্বারা পড়তে পারি

cat ./-file_name

প্রশ্ন: একই জিনিস অর্জনের বিকল্প উপায় আছে কি?


4
প্রস্তাবিত ./উপায়টি আসলে উপসর্গটি ব্যবহার করা । এটি সর্বাধিক বহনযোগ্য (সিএফ ইউজনেট যুগের ইউনিক্স এফএকিউ)
অলিভিয়ার ডুলাক

find . -name "-filename" | xargs catপাইপ মাধ্যমে ./- ফাইল নাম পাঠাতে হবে। আপনার (সরলীকৃত?) কেস ভুল করার জন্য, তবে এটি বড় ডিরেক্টরি / স্ক্রিপ্টগুলিতে সহায়তা করতে পারে।
ওয়াল্টার এ 21

উত্তর:


11

স্ট্যান্ডিনের ইনপুট প্রাপ্ত কমান্ডগুলির জন্য, আপনি পুনর্নির্দেশটি ব্যবহার করতে পারেন:

cat <-file_name

হ্যাঁ এই একটি কাজ করে :) তাই আমি তাদের ব্যবহারের একটি পড়ার 3 টি উপায় পেয়েছি। / অন্যটি ব্যবহার করে এবং অন্যটি <ব্যবহার করে, একই জিনিস করার আর কোনও উপায় ??
বিধান

22

--বিকল্পগুলির শেষ চিহ্নিত করতে ডাবল ব্যবহার করুন:

cat -- -<FILENAME>

অন্যান্য প্রোগ্রাম যেমন touch, rmবা git checkoutএই সম্মেলনটি অনুসরণ করে:

$ touch -- -file
$ ll
total 0
-rw-r--r-- 1 ja ja 0 Mar 10 13:13 -file
$ echo hi! >> -file
$ cat -- -file
hi!
$ rm -- -file
$ echo $?
0

সতর্কতা: স্ক্রিপ্টগুলির --পরে সর্বদা ব্যবহার করা ভাল অনুশীলন rm। একজন আক্রমণকারী --rfএকটি ডিরেক্টরিতে ফাইল রাখতে পারে এবং rm *এটি রান পরামিতি হিসাবে গ্রহণ করবে। এটা দেখ:

$ touch A
$ touch B
$ mkdir dir
$ touch dir/C
$ touch -- -rf
$ rm *
$ ll
total 0
-rw-r--r-- 1 ja ja 0 Mar 10 13:21 -rf

ওফস, এটি আমাদের বোঝানো নয়, আমরা ডিরেক্টরিগুলি সরাতে চাইনি। আমাদের ব্যবহার করা উচিত ছিল --:

$ touch A
$ touch B
$ mkdir dir
$ touch dir/C
$ touch -- -rf
$ rm -- *
rm: cannot remove `dir': Is a directory
$ ll
total 4.0K
drwxr-xr-x 2 ja ja 4.0K Mar 10 13:22 dir

3
আপনি প্রতিটি প্রোগ্রাম বাস্তবায়নের উপর নির্ভর করতে পারবেন না --: অনেকগুলি কিন্তু সমস্ত কিছু নয়।
গ্লেন জ্যাকম্যান

2
সত্যি? আমি বলিনি যে সমস্ত প্রোগ্রাম বাস্তবায়িত হয় --, আমি বলেছিলাম যে এটি কিছু করে।
আরকাদিউস দ্রবকিজিক

1
@ বিধান: অন্য কোনও বিকল্প সম্পর্কে আমি অবগত নই।
আরকাদিউস দ্রবকিজিক 10:15

1
@ বিধান আপনি অকারণে আপনার জীবনকে জটিল করে তুলতে পারেন এবং এর মতো কিছু করতে পারেন find . -name '-file_name' -exec cat {} \;তবে সত্যিকার অর্থে এর পক্ষে খুব একটা বক্তব্য নেই।
টেরডন

2
ফাইলটির নামকরণ করা -ছাড়া আর কিছুই নয় যদি এটি কাজ করে না ? এটি যুদ্ধের খেলায়
ওয়ার্গেমস

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