सहानुभूति की अनदेखी करने वाली निर्देशिका की सामग्री ls


17

मेरे पास एक निर्देशिका है जिसमें मैं प्रतीकात्मक लिंक दिखाए बिना सभी सामग्री (फाइलें और उप निर्देशिका) को सूचीबद्ध करना चाहूंगा। मैं लिनक्स पर GNU उपयोगिताओं का उपयोग कर रहा हूं। lsसंस्करण 8.13 है।

उदाहरण:

पूर्ण निर्देशिका सूची:

~/test$ ls -Gg
total 12
drwxrwxr-x 2 4096 Jul  9 10:29 dir1
drwxrwxr-x 2 4096 Jul  9 10:29 dir2
drwxrwxr-x 2 4096 Jul  9 10:29 dir3
-rw-rw-r-- 1    0 Jul  9 10:29 file1
-rw-rw-r-- 1    0 Jul  9 10:29 file2
lrwxrwxrwx 1    5 Jul  9 10:29 link1 -> link1
lrwxrwxrwx 1    5 Jul  9 10:30 link2 -> link2

मैं क्या पाना चाहूंगा

~/test$ ls -somthing (or bash hack)
total 12
dir1 dir2 dir3 file1 file2

नोट: मेरा मुख्य प्रेरणा सिम्बलिंक का पालन किए बिना एक पुनरावर्ती grep (GNU grep 2.10) करना है।

जवाबों:


28

कहा प्रश्न के लिए आप उपयोग कर सकते हैं find:

find . -mindepth 1 ! -type l

वर्तमान निर्देशिका या सभी उपनिर्देशिकाओं में सभी फ़ाइलों और निर्देशिकाओं को सूचीबद्ध करेंगे जो सहानुभूति नहीं हैं।

mindepth 1बस .वर्तमान-निर्देशिका प्रविष्टि को छोड़ना है । इसका मांस का संयोजन है -type l, जिसका अर्थ है "एक प्रतीकात्मक लिंक", और !, जिसका अर्थ है निम्नलिखित परीक्षण को नकारना। संयोजन में वे हर उस फ़ाइल से मेल खाते हैं जो सिम्लिंक नहीं है। यह सभी फ़ाइलों और निर्देशिकाओं को पुनरावर्ती रूप से सूचीबद्ध करता है, लेकिन कोई सहानुभूति नहीं।

यदि आप केवल नियमित फाइलें चाहते हैं (और निर्देशिका नहीं):

find . -type f

इस निर्देशिका के केवल सीधे बच्चों को शामिल करने के लिए, और अन्य सभी को पुनरावर्ती नहीं:

find . -mindepth 1 -maxdepth 1

आप उन (और अन्य) परीक्षणों को एक साथ जोड़ सकते हैं जिन्हें आप चाहते हैं फ़ाइलों की सूची प्राप्त करने के लिए।

grepआपके द्वारा उपयोग किए जा रहे परीक्षणों से मेल खाने वाली प्रत्येक फ़ाइल पर किसी विशेष को निष्पादित करने के लिए , उपयोग करें -exec:

find . -type f -exec grep -H 'some pattern' '{}' +

'{}'फाइलों के साथ प्रतिस्थापित किया जाएगा। यह +बताने के लिए आवश्यक है कि findआपकी आज्ञा क्या है। विकल्प -Hएक फ़ाइल नाम को प्रदर्शित करने के लिए grep को बाध्य करता है, भले ही वह एकल मिलान वाली फ़ाइल के साथ चलने के लिए हो।


यह विच में फाइल नहीं दिखाता है पैटर्न पाया जाता है।
TheMeaningfulEngineer

यही आप के लिए चलाते grepहैं (अंतिम पैराग्राफ देखें)।
माइकल होमर

मैं मेरे लिए काम नहीं करता। यह सिर्फ फ़ाइल नाम के बिना पाए गए पैटर्न को आउटपुट करता है जहां यह पाया गया था।
TheMeaningfulEngineer

2
का प्रयोग करें grep -H, तो आप इसे अगर (देखें man grep), या अन्यथा grep 'pat' '{}' /dev/null ';'सोच अगर तुम नहीं एक से अधिक फ़ाइलों देखते हैं में यह चाल करने के लिए।
माइकल होमर

1
+पतित मामले में उस आवश्यकता को पूरा करने में विफल रहता है जहां अंत में केवल एक फ़ाइल या एक फ़ाइल बची है।
माइकल होमर

17

या, सरल:

ls -l | grep -v ^l

व्याख्या

ls -lलंबे रूप में सूचीबद्ध करने का मतलब है । जब आप ऐसा करते हैं, तो वर्णों का पहला स्ट्रिंग प्रत्येक फ़ाइल के बारे में जानकारी देता है। पहला वर्ण इंगित करता है कि प्रत्येक फ़ाइल किस प्रकार की है। यदि यह एक सिमलिंक है, तो एक lपहला चरित्र है।

grep -v ^lसाधन को फ़िल्टर करने के ( -v) लाइनों के साथ (शुरू ^) एक l


यह बहुत अच्छा काम करता है, लेकिन केवल फ़ोल्डर नाम कैसे प्राप्त करें? मैं इसका उपयोग करना चाहता हूंfor i in
लुका

क्या आप कृपया इस कोड की व्याख्या कर सकते हैं?
abg

सावधान रहें कि यदि आप इसमें काम करते हैं तो यह समाधान काम नहीं करता -lहै ls। इसलिए यह उम्मीद के ls | grep -v ^l
मुताबिक

@Luka आप के उत्पादन से अधिक पाश नहीं है find, को देखने के unix.stackexchange.com/questions/321697
Kusalananda

1
@abg - मैंने एक स्पष्टीकरण जोड़ा। आशा करता हूँ की ये काम करेगा।
ज्योफ

7

संस्करण 2.12 से, बाद में -rजब तक आप हाथ से उन्हें निर्दिष्ट नहीं करते हैं, तब तक GNU grep विकल्प प्रतीकात्मक लिंक को नहीं करता है।

-आर, - व्यापक

प्रत्येक निर्देशिका के तहत सभी फ़ाइलों को पुनरावर्ती रूप से पढ़ें, केवल प्रतीकात्मक लिंक के बाद यदि वे कमांड लाइन पर हों। यह -d पुनरावृत्ति विकल्प के बराबर है।

-आर, - अनुमापन-पुनरावर्ती

प्रत्येक निर्देशिका के अंतर्गत, पुनरावर्ती रूप से सभी फ़ाइलों को पढ़ें। -आर के विपरीत, सभी प्रतीकात्मक लिंक का पालन करें।


Grep का क्या संस्करण है। मैं -R, -r, --recursive Read all files under each directory, recursively; this is equivalent to the -d recurse option.2.10 में है
TheMeaningfulEngineer

grep (GNU grep) 2.14
त्‍यागी

5

Zsh में, यह आसान होगा ग्लोब क्वालिफायर के लिए धन्यवाद :

grep -- PATTERN **/*(.)

पैटर्न **/पुनरावर्तक रूप से उपनिर्देशिका का पता लगाता है। ग्लोब क्वालीफायर. नियमित फ़ाइलों से मेल खाता है।

बिना zsh, का उपयोग करें find( माइकल हॉर्नर का जवाब देखें )। और इस विशेष मामले में, GNU grep वही कर सकता है जो आप चाहते हैं (यह वास्तव में वही grep -rकरता है) - लेकिन केवल 2.12 संस्करण के बाद से, पहले के संस्करणों ने प्रतीकात्मक लिंक का पालन किया था।


2

आप ऐसा करने के $LS_COLORSलिए उपयोग कर सकते हैं । यदि आपका संस्करण lsउस चर का उपयोग करके रंगों को निर्दिष्ट करने का समर्थन करता है, तो आप प्रति फ़ाइल प्रकार आउटपुट को परिभाषित कर सकते हैं। यह बिल्ट बिहेवियर और बहुत कंफर्टेबल है। इसलिए मैंने इसे प्रदर्शित करने के लिए कुछ फाइलें बनाई हैं:

for f in 9 8 7 6 5 4 3 2 1
    do touch "${f}file" && 
    ln -s ./"${f}file" ./"${f}filelink"
done

तो अब मैं करता हूँ:

LS_COLORS='lc=:rc=:ec=:ln=\n\n\0HERE_THERE_BE_A_LINK>>\0:' \
ls -1 --color=always | cat

###OUTPUT###
1file


HERE_THERE_BE_A_LINK>>1filelink@
2file


HERE_THERE_BE_A_LINK>>2filelink@
3file

...
HERE_THERE_BE_A_LINK>>8filelink@
9file
...

और नल भी हैं ...

LS_COLORS='lc=:rc=:ec=:ln=\n\n\0HERE_THERE_BE_A_LINK>>\0:' \
ls -1 --color=always | sed -n l
1file$
$
$
\000HERE_THERE_BE_A_LINK>>\0001filelink@$
2file$
$
$
\000HERE_THERE_BE_A_LINK>>\0002filelink@$
3file$
...

आप सभी या किसी भी फाइलपेट के लिए निर्दिष्ट कर सकते हैं। ऐसा केवल एक फ़िलाटाइप के लिए करने से आपको प्राप्त नहीं हो सकता है, हालांकि lsटर्मिनल एस्केप के लिए कुछ डिफ़ॉल्ट संकलन मूल्यों को शामिल किया गया है। आप एपीआई को एकल इंटरफ़ेस के रूप में संबोधित करने के लिए बहुत बेहतर करेंगे। यहां वर्तमान परिवेश dircolorsकॉन्फ़िगर किए गए डिफ़ॉल्‍ट को पार्स करने और असाइन करने का एक सरल सा साधन है :

LS_COLORS='rs=:no=//:lc=:rc=:ec=//:'$(
set -- di fi ln mh pi so do bd cd or su sg ca tw ow st ex
for fc do printf %s "$fc=/$fc//:"
done) ls -l --color=always | cat

मेरे घर निर्देशिका में इसका उत्पादन इस तरह दिखता है:

total 884
///-rw-r--r-- 1 mikeserv mikeserv    793 Jul  9 11:23 /fi//1/
//drwxr-xr-x 1 mikeserv mikeserv    574 Jun 24 16:50 /di//Desktop//
//-rw-r--r-- 1 mikeserv mikeserv    166 Jul  4 23:02 /fi//Terminology.log/
//-rw-r--r-- 1 mikeserv mikeserv      0 Jul  6 11:24 /fi//new
file/
//lrwxrwxrwx 1 mikeserv mikeserv     10 Jul 11 04:18 /ln//new
file
link/ -> /fi//./new
file/
//-rwxr-xr-x 1 mikeserv mikeserv    190 Jun 22 11:26 /ex//script.sh/*
//-rw-r--r-- 1 mikeserv mikeserv 433568 Jun 22 17:10 /fi//shot-2014-06-22_17-10-16.jpg/
//-rw-r--r-- 1 mikeserv mikeserv     68 Jun 17 19:59 /fi//target.txt/

आप इसे भी चला सकते cat -Aहैं और केवल इतना ही अंतर होगा कि आप $नई कहानियों के लिए देखेंगे - इसके द्वारा पेश किए गए कोई भी अनपेक्षित वर्ण नहीं हैंls --color=always इस कॉन्फ़िगरेशन के साथ है - केवल वही जो आप यहाँ देखते हैं।

ls अपना डिफ़ॉल्ट टर्मिनल इस तरह से सम्मिलित करता है:

${lc}${type_code}${rc}FILENAME${lc}${rs}${rc}

... जहां $lc (कोड के बाएं) , $rc (कोड के दाईं ओर) और $rs (रीसेट) के लिए डिफ़ॉल्ट मान हैं:

 \033 - ESCAPE
 m - END ESCAPE
 0 - reset 

... क्रमशः। ${type_code}का उपयोग विभिन्न fi (नियमित फ़ाइल - डिफ़ॉल्ट परेशान) , di (निर्देशिका) , ln (लिंक) , और हर दूसरे फ़ाइल प्रकार के बारे में जानने के लिए किया जाता है। वहाँ भी $no (सामान्य) है जो डिफ़ॉल्ट रूप से भी परेशान है और जो //प्रत्येक पंक्ति की शुरुआत में यहां दर्शाया गया है । मेरा साधारण सा IFS=:ब्लॉक प्रत्येक विन्यास के लिए नाम को अपने मूल्य के रूप में सम्मिलित करके और एक स्लैश या दो जोड़कर काम करता है - हालाँकि\0 NUL बाइट्स भी करेंगे।

डिफ़ॉल्ट रूप lsसे भी $rsइसके पहले आउटपुट से पहले एक तुरंत डाला जाएगा $lc- लेकिन यह यहाँ सही रूप से प्रस्तुत नहीं किया गया है। इस मामले में मैंने निर्दिष्ट किया है $ec (अंत कोड) जो $rsसभी मामलों में है - जब यह निर्दिष्ट किया जाता है कि आपको $rsबीच में अतिरिक्त नहीं मिलेगा $noऔर ${type_code}जैसा कि आप अन्यथा करेंगे - यह केवल एक फ़ाइल नाम और आउटपुट के शुरू होने के तुरंत बाद प्रस्तुत करता है। - जैसा कि आप लाइन एक के सिर पर एक अतिरिक्त स्लैश में देख सकते हैं।

यहाँ एक स्निपेट मेरे खुद का है $LS_COLORS

printf %s "$LS_COLORS"

rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:\
so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:\
or=40;31;01:su=37;41:sg=30;43:ca=30;41:\
tw=30;42:ow=34;42:st=37;44:ex=01;32:\
*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:...

और, सच में, मेरी छोटी शेल हैक शायद जटिल है - इन मूल्यों को निर्दिष्ट करने के लिए एक व्यापक रूप से उपलब्ध इंटरफ़ेस है। dircolors -pअपनी cli में और info dircolorsउस पर अधिक जानकारी के लिए प्रयास करें ।

आप मनमाने तारों में फ़ाइल नाम लपेट सकते हैं। आप चाहें तो उन्हें टिप्पणी कर सकते हैं। आप केवल फ़ाइल एक्सटेंशन के आधार पर समान व्यवहार निर्दिष्ट कर सकते हैं। वास्तव में बहुत कुछ नहीं है जो आप उस तरह से निर्दिष्ट नहीं कर सकते।

अब मैं यह सब या तो नहीं कर रहा हूँ - मैंने इसके बारे में दुर्घटना के बाद स्रोत कोड पर ठोकर खाने के बाद सीखा ।

इस विशेष विन्यास के साथ lsउत्सर्जन होगा:

  1. $no - प्रत्येक रिकॉर्ड की शुरुआत में एक बार प्रति रिकॉर्ड

  2. ${type_code}- एक बार फ़ाइल के प्रकार का संक्षिप्त नाम शामिल करने के लिए तुरंत प्रत्येक फ़ाइल नाम से पहले और हमेशा एक प्रतीकात्मक लिंक के लक्ष्य को दर्शाते हुए $no या उसके तुरंत बाद 7 व्हाट्सएप सीमांकित फ़ील्ड के रूप में एक ही पंक्ति पर होने वाली ->

  3. $ec - एक बार तुरंत बहुत पहले लाइन से पहले और उसके बाद केवल एक बार तुरंत प्रत्येक फ़ाइल नाम के बाद।

  4. अन्य सभी मान रिक्त हैं।

इस प्रकार एक शून्य-सीमांकित है ls, और इस बार मैं इसका उपयोग करूंगा cat -A, हालांकि, इसके बिना, यह अंतिम उदाहरण के समान दिखाई देगा:

LS_COLORS='rs=:no=\0//:lc=:rc=:ec=\0//:'$(
set -- di fi ln mh pi so do bd cd or su sg ca tw ow st ex
for fc do printf %s "$fc=/$fc//\0:"
done) ls -l --color=always | cat -A

total 884$
^@//^@//-rw-r--r-- 1 mikeserv mikeserv    793 Jul  9 11:23 /fi//^@1^@//$
^@//drwxr-xr-x 1 mikeserv mikeserv    574 Jun 24 16:50 /di//^@Desktop^@///$
^@//-rw-r--r-- 1 mikeserv mikeserv    166 Jul  4 23:02 /fi//^@Terminology.log^@//$
^@//-rw-r--r-- 1 mikeserv mikeserv      0 Jul  6 11:24 /fi//^@new$
file^@//$
^@//lrwxrwxrwx 1 mikeserv mikeserv     10 Jul 11 04:18 /ln//^@new$
file$
link^@// -> /fi//^@./new$
file^@//$
^@//-rwxr-xr-x 1 mikeserv mikeserv    190 Jun 22 11:26 /ex//^@script.sh^@//*$
^@//-rw-r--r-- 1 mikeserv mikeserv 433568 Jun 22 17:10 /fi//^@shot-2014-06-22_17-10-16.jpg^@//$
^@//-rw-r--r-- 1 mikeserv mikeserv     68 Jun 17 19:59 /fi//^@target.txt^@//$

और इसलिए इस तरह की एक सूची से सभी प्रतीकात्मक लिंक को मज़बूती से हटाने के लिए -l, आप एक साधारण बदलाव कर सकते हैं:

LS_COLORS='rs=:no=//:lc=:rc=:ec=/ :'$(
set -- di fi mh pi so do bd cd or su sg ca tw ow st ex
for fc do printf %s "$fc=$fc/:"
done)ln=///: ls -l --color=always | sed ':ln
\|///|{N;\|\n//|!bln};s|.*//||'

दौड़ने के बाद मेरे परिणाम जैसे दिखते हैं ...

total 884
-rw-r--r-- 1 mikeserv mikeserv    793 Jul  9 11:23 fi/1/ 
drwxr-xr-x 1 mikeserv mikeserv    574 Jun 24 16:50 di/Desktop/ /
-rw-r--r-- 1 mikeserv mikeserv    166 Jul  4 23:02 fi/Terminology.log/ 
-rw-r--r-- 1 mikeserv mikeserv      0 Jul  6 11:24 fi/new
file/ 
-rwxr-xr-x 1 mikeserv mikeserv    190 Jun 22 11:26 ex/script.sh/ *
-rw-r--r-- 1 mikeserv mikeserv 433568 Jun 22 17:10 fi/shot-2014-06-22_17-10-16.jpg/ 
-rw-r--r-- 1 mikeserv mikeserv     68 Jun 17 19:59 fi/target.txt/ 

ऊपर मैं जो कुछ करता हूं उसकी तरह कुछ कमांड का उपयोग करना:

LSCOLORS=...$(...)fc1=///:fc2=///: ls ... | sed ...

... (जहां fc1और fc2बाद सूचीबद्ध फ़ाइल प्रकार हैं set --subshell में) की सेवा मज़बूती से फ़ाइल प्रकार के किसी भी संयोजन को दूर आप से चाहते सकता है चाहिए lsकोई भी वर्ण फ़ाइल नाम शामिल हो सकता है के उत्पादन में परवाह किए बिना।


हेह, अच्छाई, मौलिकता के लिए +1। हालांकि, निर्देशिका पर गला घोंटना लगता है, वे एक गंदे ANSI रंग कोड के साथ मुद्रित होते हैं। वैसे भी, आप इस बात का स्पष्टीकरण जोड़ सकते हैं कि यह कैसे काम करता है? शायद समझाने क्या lc, nc, आदि कर रहे हैं?
terdon

@terdon - वे केवल एएनएसआई के साथ मुद्रित कर रहे हैं पहले से ही अपने वातावरण में सेट और या के लिए एक डिफ़ॉल्ट के रूप में संकलित पलायन lsके di=मूल्य। आपको di=:उस nullify के लिए var को जोड़ना होगा - और अन्य सभी के लिए। यह मैं क्या आपी से मतलब है - आप प्रत्येक फ़ाइल को संबोधित करते हैं, लेकिन आपको सभी मामलों में इंटरफ़ेस को समान करना होगा। इसलिए lnएक तरह से सेटिंग करना और diचूक को अनदेखा करना काम नहीं करेगा। कई चूक भी संकलित हैं ... हम्म। के बारे में आपका पूछने lcऔर ncऔर सामान मान्य है - पूरी तरह से - मैं पहले से ही यह दूसरे दिन हालांकि किया था। मैं इसे लिंक करूँगा, मुझे लगता है।
मोकेसर

आउच, इसलिए मुझे या तो सभी संभव फ़ाइल प्रकारों को हमेशा निर्दिष्ट करना होगा या जांचना होगा कि हाथ से पहले क्या मौजूद है? ठीक है धन्यवाद।
terdon

@terdon - अभी मेरा संपादन देखें - यह शेल की एक दो पंक्तियों में करता है, प्रत्येक प्रकार को उसके प्रकार के नाम से निर्दिष्ट करता है और हर फ़ाइल नाम को मज़बूती से हटाता है। कोई भी गैर-परिचय नहीं है। और वैसे भी इसके लिए एक एपीआई है - यह dircolors। यह एक कॉन्फिग फाइल पढ़ता है और शेल evalफ्रेंडली वर्जन वैल्यू आउटपुट करता है । यह बहुत आसान है - लेकिन इसलिए कुछ लाइनें हैं। वैसे भी, अगर आप का उपयोग करना चाहते थे dircolorsबस दो अलग अलग फ़ाइलों को बचाने और इसे इस तरह से आह्वान। इसके अलावा, मैंने आपको दूसरे दिन दिखाया कि \0प्रत्येक एस्केप क्रम के भाग के रूप में एनयूएल डेलिमिटर के साथ एक साथ दोनों कैसे करें ।
मिकसर्व

@terdon - मैंने यह स्पष्ट करने की कोशिश की कि उन सभी मूल्यों को स्थापित करना कितना आसान है, जिन्हें संकलित किया जा सकता है - मुझे लगता है कि मुझे सब मिल गया है, शायद बहुत सारे ... LS_COLORS='rs=:no=\0//:lc=:rc=:ec=\0//:'$( set -- di fi ln mh pi so do bd cd or su sg ca tw ow st ex; for fc do printf %s "$fc=/$fc//\0:"; done) ls -l --color=always | cat -A
mikeserv

0

निम्नलिखित उत्तर निम्नलिखित है:

 ls -1F | grep -i "/"

अजीब तरह से एलएस कमांड में से 1 को छोड़ना अभी भी एक सूची देता है।


1
क्यों grep -i? ऐसा नहीं है कि /ऊपरी या निचले मामले में हो सकता है। lsजब उत्पादन टर्मिनल नहीं होता है तो यह एक नॉइ-कॉलम प्रारूप में चूक करता है (यह यहां एक पाइप है)।
Kusalananda

-2

इसको आजमाओ:

ls | grep -v " -> "

2
यह विभिन्न कारणों से विफल हो जाएगा, उदाहरण के लिए, नामक फ़ाइल पर a -> b। यह नए नामों और अन्य विचित्रताओं वाले फ़ाइल नामों पर भी विफल हो जाएगा। कृपया यह पढ़ने के लिए कि ls को पार्स करना एक बुरा विचार क्यों है।
terdon

@terdon अधिक मूलभूत कारण हैं कि यह क्यों विफल होगा। या तो lsयह ls -lफ़ाइल नाम से पहले कॉलम है और यह रिटर्न नहीं है, या यह नहीं है, और यह प्रतीकात्मक लिंक के बारे में कुछ खास नहीं करता है।
गिल्स एसओ- बुराई को रोकना '

@terdon - पर्स lsही। lsजब हम किसी टर्मिनल पर प्रिंट करते हैं, तो हम सभी को पार्स करते हैं - एक एपी होता है । मैंने एक उत्तर पोस्ट किया, जिसमें यह बताया गया है कि आप यहाँ कुछ कर सकते हैं - लेकिन आप और भी बहुत कुछ कर सकते हैं। मैंने आपको दूसरे दिन ही दिखाया था - आपने अपने आप को अशक्त कर दिया था।
मिकसेर्व

@ मुझे पता है, मुझे पता है। हालांकि, यह समझाने के लिए कि यह कैसे सुरक्षित रूप से कई सौ लाइनें लेता है जैसा कि आपने स्वयं प्रदर्शित किया है। जैसा कि यह खड़ा है, यह उत्तर पार्सिंग एलएस के सभी खतरों से ग्रस्त है और ओपी स्पष्ट रूप से उनके बारे में नहीं जानता है।
terdon

@terdon - lsअपने बच्चों या कुछ भी खाने के लिए नहीं जा रहा है - यह केवल एक कार्यक्रम है। आप तो यह समझाने नहीं है, तो यह होगा कई सौ ले यह समझाने के लिए और कई सौ अधिक समझाने के लिए क्यों कई सौ लाइनों तुम सिर्फ से जुड़ा हुआ गलत हैं। और इसके अलावा - यह केवल दो पंक्तियाँ हैं:LS_COLORS='lc=:rc=:ec=:ln=\n\n\0HERE_THERE_BE_A_LINK>>\0:' \ ls -1 --color=always | cat
mikeserv

-3

इस आदेश का प्रयास करें: ls -p | grep -v @


नहींं, लिंक को सूचीबद्ध करता है।
TheMeaningfulEngineer

@ एलन: k यह प्रयास करेंfind -type f
तुषारी

1
-1 क्योंकि: i) -pबस निर्देशिकाओं में एक स्लैश जोड़ता है, आप -Fii की तलाश कर रहे हैं ) आपका findविकल्प निर्देशिकाओं की सूची नहीं करेगा और iii) कृपया पोस्ट करने से पहले अपने उत्तरों का परीक्षण करें।
terdon
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.