केवल फ़ाइल नाम, दिनांक और आकार दिखाने के लिए ls के आउटपुट को कैसे सीमित करें?


23

मैं lsकेवल फ़ाइल नाम और आकार की सूची प्राप्त करने के लिए लिनक्स में कैसे उपयोग कर सकता हूं ? मुझे स्वामी, अनुमति जैसी अन्य जानकारी देखने की आवश्यकता नहीं है।


हम किस लिनक्स की बात कर रहे हैं?
टॉलिशस

अपाचे सर्वर ..

जवाबों:


25

ls -l | awk '{print $5, $6, $7, $9}'

यह फ़ाइल आकार को बाइट्स, माह, दिनांक और फ़ाइल नाम में प्रिंट करेगा।

jin@encrypt /tmp/foo % ls -l
total 0
drwxr-xr-x  2 jin  wheel  68 Oct  4 12:43 bar
drwxr-xr-x  2 jin  wheel  68 Oct  4 12:43 baz
drwxr-xr-x  2 jin  wheel  68 Oct  4 12:43 quux

jin@encrypt /tmp/foo % ls -l | awk '{print $5, $6, $7, $9}'
68 Oct 4 bar
68 Oct 4 baz
68 Oct 4 quux

@Sosukudo हाँ, मुझे यकीन नहीं है। लेकिन लोग इस बात से सहमत दिखते हैं कि खराब प्रश्नों को कम करना ठीक है, लेकिन यदि वे उपयोगी हैं तो उत्तर नहीं। meta.stackexchange.com/questions/98197/…
जिन

@ सोसुकोडो: अब
बेझिझक उठना

5
कई स्थानों के साथ फ़ाइल नाम के लिए कोई समर्थन नहीं
meso_2600

11

तकनीकी रूप से, यह संभव नहीं है ls, लेकिन findइसके -printfस्विच के साथ एक ही काम कर सकते हैं :

find -maxdepth 1 -printf '%t %s %p\n'

1
आपको सुझाव है कि मेरा विजेता है, और मैं सुझाव दूंगा कि अगर लोग आरटीएफएम के प्रिंटफ के लिए अधिक क्षेत्रों में रुचि रखते हैं। उदाहरण के लिए, मुझे उन सभी फ़ाइलों के लिए अनुमति दिखाएं जो एक निर्देशिका नहीं हैं: find usr/lib/ -not -type d -printf '%M %p\n आउटपुट: -rw-r--r-- usr/lib/x86_64-linux-gnu/apr-util-1/apr_crypto_openssl-1.so... एक आदमी को मछली और वह सब सिखाएं ...
क्रेग

प्रश्न लिनक्स के बारे में है इसलिए अनुचित जवाब नहीं है, लेकिन रिकॉर्ड के लिए इसके लिए जीएनयू की आवश्यकता है।
डैन प्रिट्स

4

आप हमेशा ऐसा कर सकते हैं:

$ ls -l
total 0
-rw-r--r--  1 user  staff  0 Oct  6 23:29 file1
-rw-r--r--  1 user  staff  0 Oct  6 23:29 file2
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file3
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file4
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file5
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file6
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file7

cut यह करने के लिए:

$ ls -l | cut -f 8-13 -d ' '

0 Oct  6 23:29 file1
0 Oct  6 23:29 file2
0 Oct  6 23:30 file3
0 Oct  6 23:30 file4
0 Oct  6 23:30 file5
0 Oct  6 23:30 file6
0 Oct  6 23:30 file7

$ 

4
के साथ काम नहीं करता है: चर स्वामित्व, समूह, फ़ाइल आकार
meso_2600

कट लगातार सीमांकक नहीं ढहते, जहां ls -lव्हॉट्सएप पैडिंग का उपयोग होता है। यदि आपके कॉलम एक समान लंबाई नहीं हैं (जो कॉलम 5, फ़ाइल का आकार अक्सर नहीं होगा), कट सही से कॉलम का चयन नहीं करेगा। लगातार रिक्त स्थान को टकराने से मदद मिलेगी (फ़ाइल नामों में रिक्त स्थान के लिए बाहर देखें)। ls -l | tr -s ' ' | cut -f 8-13 -d ' '
डेव

4

एक और गैर lsतरीका:

> stat --printf='%y\t%12s\t%-16n|\n' tmp.*
2017-06-15 10:42:07.252853000 +0200         10485760    tmp.1           |
2017-06-15 10:41:25.659570000 +0200              666    tmp.TKPzm3BfRw  |

स्पष्टीकरण: %y= मानव-पठनीय संशोधन तिथि; %s= बाइट्स में आकार ( %12sदाएं-संरेखित, लंबाई 12); %n= फ़ाइल नाम ( %-16nबाएं-संरेखित, लंबाई 16); \t= टैब, \n= लाइनफीड। |= शाब्दिक पाइप चार, बस फ़ाइल नाम के अंत को दिखाने के लिए।

जैसे ls, statयह दिखाने के लिए कि फ़ाइलों को चुनने के लिए कोई विकल्प नहीं है। ( find ... -print0 | xargs -r0 stat ...उदाहरण के लिए ऊपर या कुछ दिखाए गए शेल गोलाबारी द्वारा किया जा सकता है ।)


प्रश्न लिनक्स के बारे में था, इसलिए आपका उत्तर ठीक है, लेकिन जो कोई परवाह करता है, उसके लिए यहां FreeBSD स्टेट के बराबर है। stat -f '%N %Sm %z' filename
डैन प्रिट्स

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.