--group ডিরেক্টরি ডিরেক্টরি "ls" কমান্ডের জন্য প্রথম বিকল্প


13

আমি উবুন্টু 16.04 এবং ওএস এক্স উভয়ই ব্যবহার করছি

alias ll='ls -Flh --group-directories-first'

এটি আমার বাশার্কের একটি উপনাম, তবে --group-directories-firstহোমব্রিউয়ের সাথে আমার ব্যাশ আপগ্রেড করার পরে কোনওভাবেই অপশনটি ওএস এক্সে অবৈধ হয়ে গেছে। আমার উবুন্টু ডেস্কটপে আমি এখনও সেই বিকল্পটি ব্যবহার করতে পারি।

বাশের কোন সংস্করণে, বিকল্পটি অসমর্থিত? আমার ওএস এক্স মেশিনে বাশ সংস্করণটি বলেGNU bash, Version 4.4.12(1)-release (x86_64-apple-darwin15.6.0)

আমি --group-directories-firstআবার বিকল্প ব্যবহার করতে চাই । এটি অর্জন করার কোনও উপায় আছে কি?


1
আপনি কি gnu correutils lsবা macOS ব্যবহার করছেন ls? আপনি অন্য চেষ্টা করেছেন?
bmike

উত্তর:


12

ইনস্টল করুন coreutilsHomebrew এবং ওরফে সঙ্গে llকরতে gls -Flh --group-directories-firstপরিবর্তে।

  • brew install coreutils GNU Coreutils ইনস্টল করে , যদি এটি ইনস্টল না হয়।
  • ব্যবহার করুন alias ll='gls -Flh --group-directories-first'মধ্যে .bashrc
    (আপনি যদি .bashrcউভয় অপারেটিং সিস্টেমে একই ফাইলটি ব্যবহার করতে চান তবে নীচে দেখুন))

উবুন্টুতে, lsজিএনইউ কোরিটিলস সরবরাহ করে যা উবুন্টু সর্বদা থাকে। এজন্য উবুন্টু lsসমর্থন --group-directories-firstকরে। সম্ভবত আপনি এর lsআগে ম্যাকওএস-এ জিএনইউ কোরিউটিলস সংস্করণটি ব্যবহার করেছেন , যা হোমব্রিউ ইনস্টল করে glsতবে যা ব্যবহারযোগ্য lsউপায়ে তৈরি করা যেতে পারে several

lsএকটি বাহ্যিক আদেশ, বাশ অন্তর্নির্মিত নয়। কোনও ভিন্ন সংস্করণ বা বাশের বিল্ড ব্যবহার করা এতে প্রভাব ফেলবে না। আমি নিশ্চিত না যে আপনি বাশকে হোমব্রু ব্যবহার করে আপগ্রেড করার সময় কী হয়েছিল। বাশের চেয়েও বেশি আপগ্রেড হতে পারে; হতে পারে আপনার একটিlsশেল ফাংশন বা উলামের পরিবর্তিত একটি বিশ্বব্যাপী কনফিগারেশন ফাইলের সংজ্ঞা দেওয়া আছে; হতে পারে আপনার একটি প্রতীকী লিঙ্কlsছিল যা ইঙ্গিত করেছিলglsএবং ওভাররাইট হয়েছিল; আপনার কাছে এখনও এরকম কিছু$PATHরয়েছেতবে আপনারপরিবর্তন হয়েছে। যা কিছু ঘটেছে, জিএনইউ করিউটিলস lsসমর্থন করে--group-directories-first এবং এতে স্যুইচ করা (যেমন আমি বিশ্বাস করি বিমিকের পরামর্শ দিচ্ছে ) আপনার সমস্যার সমাধান করতে হবে।

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

if [ "$OSTYPE" == linux-gnu ]; then  # Is this the Ubuntu system?
    alias ll='ls -Flh --group-directories-first'
else
    alias ll='gls -Flh --group-directories-first'
fi

অথবা আপনি যদি খুঁজে পেয়ে থাকেন যে আপনি সাধারণত করিউটিলগুলি চালানো পছন্দ করেন ls, এমনকি আপনি যদি llউপনামটি ব্যবহার না করছেন তবে আপনি lsএকটি উপাধি তৈরি করতে পারেন gls:

if [ "$OSTYPE" != linux-gnu ]; then  # Is this the macOS system?
    alias ls=gls
fi

alias ll='ls -Flh --group-directories-first'

(ধন্যবাদ that স্ক্রিপ্টের পূর্ববর্তী সংস্করণে ভুল ধরা দেওয়ার জন্য সোর্সজেজেপে যান ))


আমি এই উত্তরটি অনুসরণ করেছি এবং ব্যবহার করেছি: ওরফে ls = 'gls --color -h --group-ডিরেক্টরি-ডিরেক্টরি' প্রথমে 'ওরফে ll =' ls -al '
ব্যবহারকারী 2875289

1
আমি কি আপনার শেষ বিভাগে মনে "অথবা যদি আপনাকে খুঁজে আপনি সাধারণত চালানোর জন্য পছন্দ করা ..." , শর্তাধীন চাহিদা পরিবর্তন করা হবে: "$OSTYPE" != linux-gnu যেহেতু আপনি ওরফে করতে চান থেকে গোল করে তুমি না একটি Linux গনুহ সিস্টেমে (যেমন আপনি একটি ম্যাক উপর)।
soreshjp

1
@ সোরস্জপি ধন্যবাদ - আপনি ঠিক বলেছেন। (আমি এটি স্থির করেছি;
অপেক্ষাটির
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.