एक पेड़ (एक निर्देशिका और उसके उपखंड) में सभी फाइलों को कैसे सूचीबद्ध करें?


41

मेरे एक कार्य के लिए मुझे सभी फाइलों को एक पेड़ (एक निर्देशिका, उसके सभी उप-खंड, उन सभी के सभी उपखंडों, आदि) को सूचीबद्ध करने की आवश्यकता है।

मैं उन्हें Nautilus या क्रूसेडर में देखना पसंद करूंगा, लेकिन एक कमांड-लाइन समाधान भी दिलचस्प है (इस मामले में मुझे सूचीबद्ध होने के लिए पूर्ण नाम, आकार और संशोधन समय की आवश्यकता होगी)।


यह सवाल एक है भयानक विचारों का बहुत कुछ। शायद आप उस उत्तर को स्वीकार कर सकते हैं जो आपको सबसे अधिक उपयोगी लगा, दूसरों को कुछ समय बचाने के लिए @ इवान?
स्टारबिम्रेनबोलाब्स

जवाबों:


39

पेड़ आपके लिए बहुत सुविधाजनक होगा।

sudo apt-get install tree

tree filepathफ़ाइलों को सूचीबद्ध करने के लिए उपयोग करना।


27
ls -alR

यह शायद सबसे सरल तरीका है। मैं आपको एक स्पर्श स्क्रिप्ट दे रहा हूं ताकि आपको एक स्पर्श अधिक नियंत्रण मिल सके।


7
या बस ls -Rअगर आप सभी विवरण नहीं चाहते हैं।
मैथ्यू

11
find /path/ -printf "%TY-%Tm-%Td\t%s\t%p\n"

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

अधिक: http://linux.about.com/od/commands/l/blcmdl1_find.htm

बेहतर पठनीयता के लिए, आप इसे columnकमांड के माध्यम से सभी को पाइप कर सकते हैं और यह स्वचालित रूप से चीजों का आकार बदल देगा ताकि वे लाइन अप करें।

find /path/ -printf "%TY-%Tm-%Td\t%s\t%p\n" | column -t

4

जैसा कि ओली ने उत्तर दिया, findआपको पूरी निर्देशिका ट्री खोजने की अनुमति देगा:

find /path/ -printf "%TY-%Tm-%Td\t%s\t%p\n"

# Where %TY will display the mod. time year as 4 digits
#       %Tm will display the mod. time month as 2 digits
#       %Td will display the mod. time day as 2 digits
#       %s displays the file size in bytes
#       %p displays the full path name of the file

आप -type fपरिणामों को केवल फाइलों तक सीमित करने के लिए विकल्प का उपयोग करना चाह सकते हैं । यदि आप फ़ाइल पैटर्न से मेल खाना चाहते हैं, तो आप -nameया -inameविकल्प (केस संवेदनशील, और केस असंवेदनशील मिलान, क्रमशः) चाहते हैं। पठन findपृष्ठ के माध्यम से पढ़ें - आपके पास पर्याप्त मात्रा में विकल्प हैं जिनका उपयोग आप अपनी खोज को संकीर्ण / परिष्कृत करने के लिए कर सकते हैं।

और एक तरफ के रूप में, अगर आप कई स्क्रीनफुल डेटा के वापस पाने की उम्मीद कर रहे हैं, तो अपने परिणामों को पाइप करने के लिए याद रखें less

@Oli: +1 मैं सिर्फ नए रूप में अच्छी तरह कुछ सीखा - column। इससे पहले इस्तेमाल नहीं किया था।


3

lsउबंटू और अन्य लिनक्स और यूनिक्स ऑपरेटिंग सिस्टम में फ़ाइलों को सूचीबद्ध करने के लिए मानक कमांड है। lsसीखने के लिए विशेष रूप से उपयोगी है क्योंकि आप इसे हर यूनिक्स सिस्टम पर स्थापित पाएंगे जो आप कभी भी मिलते हैं। डिफ़ॉल्ट रूप से यह चालू निर्देशिका में केवल फाइलें प्रदर्शित करता है।

हालांकि -R'ध्वज' है पुनरावर्ती विकल्प (ध्यान दें राजधानी आर , नहीं आर ), जो अच्छी तरह से आप सभी उप-निर्देशिका दिखाएगा।

आपने "विवरण" भी मांगा - इसके लिए आपको -lझंडा चाहिए (यह लोअरकेस एल है, नंबर एक नहीं)। ध्यान रहे यह आपको फ़ाइल की अनुमति के साथ-साथ फ़ाइल का आकार, समय / तिथि की जानकारी और फ़ाइल का नाम भी देता है।

यदि आप छिपी हुई फ़ाइलें / फ़ोल्डर ( Nautilus में Ctrl+ के बराबर H) भी दिखाना चाहते हैं, तो -a'सभी' ध्वज जोड़ें ।

आप झंडे को एक साथ मर्ज कर सकते हैं, ताकि आप कुछ दे सकें:

ls -lR

यदि आप इसे किसी भी सभ्य आकार के फ़ोल्डर पर चलाते हैं, तो आप पाएंगे कि यह एक बहुत बड़ा लंबा आउटपुट है जो आपकी स्क्रीन को बहुत तेज़ी से नीचे स्क्रॉल करता है। इसके आस-पास जाने के लिए, आप lsएक प्रोग्राम के माध्यम से आउटपुट को 'पाइप' कर सकते हैं less(नाम उसी तरह का एक पैरोडी है moreजो पहले चारों ओर था लेकिन इसमें अधिक विशेषताएं हैं)।

ls -lR | less

यह आपको अधिक आरामदायक गति से आउटपुट के माध्यम से जाने के लिए पेजअप / डाउन के साथ ऊपर / नीचे तीर कुंजियों का उपयोग करने की अनुमति देगा।


0

क्रूसेडर का उपयोग करना:

  1. खोज (सीटीएल-एस) का उपयोग करें।
  2. "उपनिर्देशिकाओं में खोज" की जाँच करें।
  3. "खोज" पर क्लिक करें।
  4. जब खोज पूरी हो जाए, तो "लिस्ट टू फीडबॉक्स" पर क्लिक करें।

यह आपको अन्य पैनल आदि पर खींचकर पूरे लॉट को संसाधित करने की अनुमति देगा।


0

कैसे एक Nautilus स्क्रिप्ट के बारे में ?

#!/bin/bash
#
# AUTHOR:       (c) 2013 Glutanimate (https://askubuntu.com/users/81372)
# NAME:         DirTree 0.1
# DEPENDENCIES: zenity tree  (install with sudo apt-get install zenity tree)
# LICENSE:      GNU GPL v3 (http://www.gnu.org/licenses/gpl.html)
#
# DESCRIPTION:  Creates a directory tree at the current location. If you want you
#               can filter the output by a pattern (e.g. *.avi to only include avi
#               files).

TITLE=DirTree

# Get working directory
WORKINGDIR="`python -c 'import gio,sys; print(gio.File(sys.argv[1]).get_path())' $NAUTILUS_SCRIPT_CURRENT_URI`"

# Time and date
TIME=$(date +"%Y-%m-%d_%H%M%S")

# Filter pattern
zenity --question --title "$TITLE" --text "Do you want to filter by a specific file pattern?"

if [ "$?" = "1" ]
  then
      customtree="tree"
  else
      PATTERN=$(zenity --entry --title "$TITLE" --text="Please enter a file pattern (e.g. *.avi)")

         if [ -z "$PATTERN" ]
           then
               exit
           else
               customtree="tree -P $PATTERN"               
         fi

fi

# Directory tree
$customtree "$WORKINGDIR" > "$WORKINGDIR/directorytree_$TIME.txt"

स्थापना निर्देश: मैं Nautilus स्क्रिप्ट कैसे स्थापित कर सकता हूं?


0

मैंने इसके लिए विशेष रूप से एक प्रोग्राम बनाया है - डायरेक्टरी स्नैपशॉट
यह पुन: एक निर्देशिका के माध्यम से पुनरावृत्ति करता है और बड़े करीने से संरचित HTML फ़ाइलों में सभी फ़ाइलों और फ़ोल्डरों के नाम और आकार को संग्रहीत करता है, जो कि इनपुट निर्देशिका के समान एक संगठन है।
दूसरे शब्दों में, इसे dir /sया tree /fकमांड के हाइपरलिंक संस्करण के रूप में सोचा जा सकता है ।


आपने लिखा dirऔर treeडॉस-शैली विकल्पों के साथ, इसलिए मुझे पूछना होगा कि क्या यह उबंटू पर काम करेगा?
वेजेंड्रिया

हां, मैंने वास्तव में इसे हर सप्ताहांत में अपने उबंटू इंस्टॉलेशन पर चलाने के लिए निर्धारित किया है। हालाँकि, यह C ++ और Boost का उपयोग करके बनाया गया है, इसलिए यह बाइनरी को संकलित करने और बनाने के लिए थोड़ा कठिन होगा। यही कारण है कि मैं इसे पायथन में पोर्ट करने की प्रक्रिया में हूं। वैसे भी, यदि आप चाहें तो मैं आपको प्री-कम्पोस्ड बाइनरी दे सकता हूं।
अनमोल सिंह जग्गी

0

नॉटिलस

  1. सूची दृश्य में सबफ़ोल्डर का विस्तार करने में सक्षम करें
    • 14.04 और 16.04 के लिए, यहां देखें
    • 17.10 और 18.04 के लिए, यहां देखें
  2. एक फ़ोल्डर पर क्लिक करें और उप-श्रेणियों के एक स्तर का विस्तार करने के लिए तारांकन चिह्न ( *numpad पर, या Shift+ 8) दबाएं । हर बार जब आप तारांकन चिह्न दबाते हैं, तो यह अगले स्तर का विस्तार करेगा।

यह भी निमो में काम करता है।


-1

आप इन्हें अपने .bashrc फ़ाइल में डाल सकते हैं

function _get_tree(){ ls -alR | while read LINE; do   echo $LINE | grep ":$" > /dev/null;   if [ $? -eq 0 ];   then     VAR=$(echo $LINE | grep ":$"| sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/' | tee /dev/tty);   fi;   echo $LINE | grep "^-" > /dev/null;   if [ $? -eq 0 ];   then     size=${#VAR};     for i in $(eval echo "{1..$size}"); do echo -n ' '; done;     echo -n '..';     echo $LINE | cut -d ' ' -f9;   fi; done; };

alias get_tree='_get_tree'

अब, आप किसी भी निर्देशिका के अंदर get_tree कमांड का उपयोग कर सकते हैं और यह पूरे पदानुक्रम को प्रदर्शित करेगा।

वाक्य - विन्यास:

$ get_tree

नमूना आउटपुट:

   .

    ..test.sh

   |-2

      ..123.log

   |---3

   |-----4

   |-5

   |---6

उम्मीद है की यह मदद करेगा !!


जब तक आप जो कुछ भी कर रहे हैं उसे समझाने में मदद करने के लिए नहीं जा रहा है ..
रॉन

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