আমি কীভাবে প্রথমে "এলএস" ডটফাইলগুলি প্রদর্শন করতে পারি?


46

কোথাও কোথাও আমি আমার ls কমান্ডটি স্ক্রু করেছি এবং চলমান অবস্থায় এখন আমি এই ক্রমটি পেয়েছি

$ ls -AhHl --color=auto
-rwxr-xr-x 1 clang clang  640 Mar  1 02:46 apple-touch-icon-precomposed.png
-rwxr-xr-x 1 clang clang  784 Jul 12 02:54 crossdomain.xml
-rwxr-xr-x 1 clang clang 1.2K Mar  1 02:46 favicon.ico
drwxr-xr-x 8 clang clang 4.0K Jul 12 23:50 .git
-rw-r--r-- 1 clang clang   17 Feb 29 19:48 .gitignore
-rwxr-xr-x 1 clang clang 1.4K Jul 12 02:54 humans.txt

আমি কী করলাম যে এলএস ডটফাইলগুলি অগ্রাহ্য করে এবং পরিবর্তে প্রথম চিঠির মাধ্যমে আদেশ করে?

এর আউটপুট locale:

$ locale
LANG=
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

উত্তর:


47

যোগ করার চেষ্টা করুন

export LC_COLLATE="C"

আপনার ডটফাইলে বা LC_ALLঅ্যাসাইনমেন্টটি এতে পরিবর্তন করুন :

export LC_ALL="C"

এটি অক্ষর স্তরের কাজগুলিতে বাছাইয়ের পদ্ধতি নিয়ন্ত্রণ করে - ডিফল্টটি ডটফিলগুলি ইনলাইনে বাছাই করার পরে, এটি sortপ্রথমে তালিকাটি ডটফাইলে তৈরি করবে ।

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


আরও যেতে, জিএনইউ কোরিউটিলস ম্যানুয়াল (জোর খনির) উদ্ধৃত করে :

যদি আপনি কোনও পসিক্স স্থানীয় লোকেল ব্যবহার করেন (উদাহরণস্বরূপ, সেট LC_ALLকরে en_US), তবে সাজানোর ফলে আপনি অভ্যস্ত হওয়ার চেয়ে আলাদাভাবে বাছাই করা আউটপুট তৈরি করতে পারে

সেক্ষেত্রে LC_ALLপরিবেশ পরিবর্তনশীলকে সেট করুন C। নোট করুন যে সেটিংসে কেবল LC_COLLATEদুটি সমস্যা রয়েছে। প্রথমত, এটি LC_ALLসেট করা থাকলে এটি অকার্যকর । দ্বিতীয়ত, LC_CTYPE(বা LANG, যদি LC_CTYPEসেট না করা থাকে) একটি বেমানান মানতে সেট করা থাকে তবে এর অপরিবর্তিত আচরণ রয়েছে । উদাহরণস্বরূপ, যদি আপনি অনির্ধারিত আচরণ পেতে যদি LC_CTYPEহয় ja_JP.PCKকিন্তু LC_COLLATEহল en_US.UTF-8


2
এলসি_এলএল = "সি" সেট করা কৌতুকটি করেছে! দ্রুত প্রতিক্রিয়াটির জন্য ধন্যবাদ
clang1234

7
এলসি_এলএল = "সি" নির্ধারণ করা lsবিদেশী ভাষা (যেমন জাপানি) ইউনিকোড ফাইলের নাম হিসাবে ব্যবহার করবে????????
ওহহো

মনে রাখবেন যে export LC_ALL="C"আপনার ডটফিলগুলিতে যুক্ত করে আপনি কার্যকরভাবে সমস্ত লোকাল-সচেতন ইউটিলিটিগুলিতে আপনার আসল লোকেলের সমর্থন হারাবেন। যদিও মুদ্রণ সমস্যা হল @ohho পয়েন্ট আউট দূর করা সম্ভব Faroul এর উত্তর , আপনাকে পরিচয় করিয়ে দেব বাছাই সমস্যার: দ্বারা বাইট মান শুধুমাত্র যে বাছাই ফলে (ক) অপ্রত্যাশিতভাবে ঘটবে বাছাই কেস সংবেদনশীল (খ), এবং অপরিবর্তনীয়ভাবে স্থান উচ্চারণযুক্ত চর সমস্ত অ-উচ্চারণের পরে
mklement0

35

আসল প্রয়োজন ছাড়াই কোনও সিস্টেমের ব্যাপক পরিবর্তন এড়াতে, কেউ কেবলমাত্র lsবর্তমান ব্যবহারকারীর জন্য কীভাবে কাজ করে তার উপায়ে যুক্ত করে এটি পরিবর্তন করতে পারে .bashrc:

alias ll='LC_COLLATE=C ls -alF'

এটি প্রথমে বিন্দু ফাইলগুলি সাজায়, সিরিলিকের মতো "অস্বাভাবিক" চরিত্রের সেটগুলি সঠিকভাবে পরিচালনা করতে (প্রদর্শন এবং সাজানোর জন্য) অনুমতি দেয়। একমাত্র অপরাধী যে বাছাই করা কেস-সংবেদনশীল হবে।

সূত্র: http://ubuntuforums.org/showthread.php?t=816753


3
এটি এখানেই সেরা উত্তর
ইঞ্জিনিয়ার ডলারি

সুন্দর। সিস্টেম-ব্যাপী কনফিগারেশন (যা আপনাকে কিছু পাইথন মডিউল নিয়ে সমস্যা তৈরি করতে পারে) পরিবর্তনের চেয়ে অনেক বেশি ভাল।
গুই অ্যামব্রোস

1
এটি সবচেয়ে সহায়ক উত্তর ছিল। অতিরিক্তভাবে, এমন পরিবেশে যেখানে LC_ALLইতিমধ্যে তালিকার শীর্ষে ডটফাইলগুলি বাছাই / উত্তোলনের সাথে বেমানান কিছুতে সেট করা আছে ls, alias ll='LC_ALL=C ls -alF'পরিবর্তে ব্যবহার করুন, কারণ LC_COLLATEওভাররাইড হয় না LC_ALL
ম্যাটি

8

স্থাপন

LC_ALL="C.UTF-8"

আমার জন্য ভাল কাজ করে - umlauts এবং "ls -la" প্রথমে ডট-ফাইলের তালিকা করে।


3
ডট ফাইলগুলি প্রথমে তালিকাভুক্ত করা হয়, তবে এখন একটি বড় হাতের অক্ষর দিয়ে শুরু হওয়া ফাইলের নামগুলি ছোট হাতের সাথে শুরু হওয়া তালিকাভুক্ত হয়।
Chnossos

1
গৃহীত উত্তরের চেয়ে কাছে আসার জন্য +1, তবে সীমাবদ্ধতার সংক্ষিপ্তসার জন্য: বাছাই করা কেস-সংবেদনশীল এবং বিদেশী চরিত্রগুলিতে পরিণত হবে - যখন এখন সঠিকভাবে মুদ্রিত হয়েছে UTF-8- সঠিকভাবে বাছাই করা হবে না ।
mklement0

3
C.UTF-8একটি অবৈধ লোকেল, তাই লোকালে ফিরে আসে C। আপনি এখনও ইউটিএফ -8 সমর্থন হারান। প্রকৃতপক্ষে, এটি আরও খারাপ যেহেতু LC_ALL=Cবেশিরভাগ প্রোগ্রামগুলি বেশিরভাগ মাল্টিবাইট অক্ষরগুলি সঠিকভাবে প্রদর্শন করে তবে LC_ALL=something_invalidকিছু প্রোগ্রামের সাথে (যেমন ls) হয় না।
মার্টিন টর্নয়েজ

@ মার্টিনটর্নোইজ তবে স্টাফেন চাজেলাস যদি জিএনইউ সিস্টেমগুলি সম্পর্কে অন্যথায় বলেন (তবে সম্ভবত ডেবিয়ান এবং লিনাক্স সাধারণভাবে), কোনটি সঠিক?
মুরু

@ মুরু আমি নিশ্চিত নই, আমার ধারণা আপনি স্টাফেনকে জিজ্ঞাসা করবেন? আমি কেবল জানি এটিই localeত্রুটিযুক্ত বলে মনে হচ্ছে LC_ALL=C.UTF-8: gist.github.com/Carpetsmoker/ef09b3734b29372939f97107413d7733 - এটি আর্চ লিনাক্সে রয়েছে।
মার্টিন টর্নয়েজ

3

Ls (1) ম্যানপেজ তালিকা:

পাঠ্যের মধ্যে -v প্রাকৃতিক সাজান (সংস্করণ) সংখ্যা

পিরিয়ডগুলি কীভাবে বাছাই করা হয় এবং গ্রুপ ডটফাইলে প্রথমে তা পরিবর্তন করা যায় বলে মনে হয়। আমার আছে:

alias ls='ls -vAF'
alias ll='ls -l'

আমার ~ / .bashrc এ।


1

দেয়াল ধারণা বন্ধ

দাবি অস্বীকার: এটি আপনার বেশিরভাগের জন্য ওভারকিল হতে চলেছে। তবে আমি 1995 থেকে এটি করে আসছি এবং আমার পৃথিবীটি ঠিক কীভাবে চাই তা করার দক্ষতা আমার রয়েছে। তো, আমি কেন করব না?

আমি lsবিশেষত এর সাথে বিভিন্ন বাছাই পদ্ধতি ব্যবহার করতে পছন্দ করি -rt( বিশেষত (যা rইভার্স মডিফাইড আইমে অনুসারে বাছাই করা হয় t)। সুতরাং, আমি সিদ্ধান্ত নিয়েছি পাগল করার চেষ্টা করব এবং আমার বাছাই করতে বিশ্রী ব্যবহার করব।

# save as ~/.ls.awk
# inpsired by http://superuser.com/questions/448291/how-can-i-make-ls-show-dotfiles-first

{
    if($1 == "total"){
        print $0
        next
    }
    # may need to adjust $9 to match your name column
    if(match($9, /^(\033\[[0-9]*m)*\./)) # optionally look past xterm highlighting like: ^[[34m
        df[++dd] = $0
    else
        nf[++nn] = $0
}
END{
    while (++d in df)
        print df[d]
    while (++n in nf)
        print nf[n]
}

এখন বাশ ওরফে সংজ্ঞা দেওয়ার পরিবর্তে আমি ব্যাশ ফাংশনটি সংজ্ঞায়িত করি (কারণ উপকরণগুলি কেবল শেষে যুক্তি যুক্ত করতে পারে তবে ফাংশনগুলি সেগুলি যে কোনও জায়গায় ব্যবহার করতে পারে)

ll(){ CLICOLOR_FORCE=1 ls -lhA $* | awk -f ~/.ls.awk; }

ফলাফল দেখতে

আসুন কয়েকটি নমুনা ফাইল তৈরি করুন:

for n in 4 .4 3 .3 2 .2 1 .1; do touch $n; sleep 1; done

প্লেইন এলএস ব্যবহার করে

$ ls -lA
total 8
-rw-r--r--  1 bbronosky  staff    0 Dec  1 00:25 .1
-rw-r--r--  1 bbronosky  staff    0 Dec  1 00:25 .2
-rw-r--r--  1 bbronosky  staff    0 Dec  1 00:25 .3
-rw-r--r--  1 bbronosky  staff    0 Dec  1 00:25 .4
-rwxr-xr-x  1 bbronosky  staff  285 Nov 29 13:14 .ls.awk
-rwxr-xr-x  1 bbronosky  staff    0 Dec  1 00:25 1
-rwxr-xr-x  1 bbronosky  staff    0 Dec  1 00:25 2
-rwxr-xr-x  1 bbronosky  staff    0 Dec  1 00:25 3
-rwxr-xr-x  1 bbronosky  staff    0 Dec  1 00:25 4
$ ls -lArt

total 8
-rwxr-xr-x  1 bbronosky  staff  285 Nov 29 13:14 .ls.awk
-rwxr-xr-x  1 bbronosky  staff    0 Dec  1 00:25 4
-rw-r--r--  1 bbronosky  staff    0 Dec  1 00:25 .4
-rwxr-xr-x  1 bbronosky  staff    0 Dec  1 00:25 3
-rw-r--r--  1 bbronosky  staff    0 Dec  1 00:25 .3
-rwxr-xr-x  1 bbronosky  staff    0 Dec  1 00:25 2
-rw-r--r--  1 bbronosky  staff    0 Dec  1 00:25 .2
-rwxr-xr-x  1 bbronosky  staff    0 Dec  1 00:25 1
-rw-r--r--  1 bbronosky  staff    0 Dec  1 00:25 .1

আমার ফাংশনটি ব্যবহার করে যা awk সহ ফিল্টার করে

$ ll
total 8
-rw-r--r--  1 bbronosky  staff     0B Dec  1 00:25 .1
-rw-r--r--  1 bbronosky  staff     0B Dec  1 00:25 .2
-rw-r--r--  1 bbronosky  staff     0B Dec  1 00:25 .3
-rw-r--r--  1 bbronosky  staff     0B Dec  1 00:25 .4
-rwxr-xr-x  1 bbronosky  staff   285B Nov 29 13:14 .ls.awk
-rwxr-xr-x  1 bbronosky  staff     0B Dec  1 00:25 1
-rwxr-xr-x  1 bbronosky  staff     0B Dec  1 00:25 2
-rwxr-xr-x  1 bbronosky  staff     0B Dec  1 00:25 3
-rwxr-xr-x  1 bbronosky  staff     0B Dec  1 00:25 4

$ ll -rt
total 8
-rwxr-xr-x  1 bbronosky  staff   285B Nov 29 13:14 .ls.awk
-rw-r--r--  1 bbronosky  staff     0B Dec  1 00:25 .4
-rw-r--r--  1 bbronosky  staff     0B Dec  1 00:25 .3
-rw-r--r--  1 bbronosky  staff     0B Dec  1 00:25 .2
-rw-r--r--  1 bbronosky  staff     0B Dec  1 00:25 .1
-rwxr-xr-x  1 bbronosky  staff     0B Dec  1 00:25 4
-rwxr-xr-x  1 bbronosky  staff     0B Dec  1 00:25 3
-rwxr-xr-x  1 bbronosky  staff     0B Dec  1 00:25 2
-rwxr-xr-x  1 bbronosky  staff     0B Dec  1 00:25 1

আপনি এখানে আমার বাস্তবায়ন দেখতে পাচ্ছেন https://github.com/RichardBronosky/dotfiles/commit/6170c0a9

এর মধ্যে সবচেয়ে গুরুত্বপূর্ণটি হ'ল এটি আপনার lsআউটপুটটিকে টুইট করার জন্য একটি কাঠামো । আপনি এই জাজি ফিল্টারটি দিয়ে আপনার যা কিছু করতে চান। আপনি এটি ডিরেক্টরি হতে চান, তারপরে ডটফাইলস, তারপরে অন্য সব কিছু হতে পারে। একবার আপনি কীভাবে আপনার এক্সটার্মের রঙগুলি পরিচালনা করবেন তা জানার পরেও এটি খুব বেশি কঠিন নয়। এটি সম্পূর্ণ আপনার উপর নির্ভর করে।


-1

আপনার .bashrc বা / etc / bashrc ফাইলে এটি চেষ্টা করে দেখুন:

LS_OPTIONS='--color=tty -A -F -X -B -h -v -b -T 0 --group-directories-first';
export LS_OPTIONS;
alias ls='/bin/ls $LS_OPTIONS';

এটি ধরে নিয়েছে যে আপনি ls এর কিছুটা নতুন সংস্করণ চালাচ্ছেন যা বিকল্প হিসাবে "--group-ডিরেক্টরি-ডিরেক্টরি" নেয়। আপনি স্পষ্টতই আপনার পছন্দ অনুসারে এলএস বিকল্পগুলি সামঞ্জস্য করতে পারেন।


--group-directories-first"প্রথমে ডটফিলস দেখান" এর সাথে কী করতে হবে?
জি-ম্যান 6
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.