একটি গাছের সমস্ত ফাইল কীভাবে তালিকাভুক্ত করবেন (একটি ডিরেক্টরি এবং এর সাবডিয়ারস)?


41

আমার একটি কাজের জন্য আমাকে একটি গাছের সমস্ত ফাইলের তালিকা তৈরি করতে হবে (একটি ডিরেক্টরি, তার সমস্ত সাবডার্স, এর সমস্ত সাবডির ইত্যাদি)।

আমি সেগুলি নটিলাস বা কুরুসাদারে দেখতে পছন্দ করব তবে কমান্ড-লাইন সমাধানটিও আকর্ষণীয় (এই ক্ষেত্রে আমার তালিকাভুক্ত করার জন্য ফাইলের পুরো নাম, আকার এবং পরিবর্তনের সময় প্রয়োজন হবে)।


এই প্রশ্নের একটি ভয়ঙ্কর মতামত আছে। @ অন্যদের কিছুটা সময় বাঁচানোর জন্য আপনি যে উত্তরটি সবচেয়ে সহায়ক বলে মনে করেছিলেন তা গ্রহণ করতে পারেন?
স্টারবিয়াম্রেনবোলাবস

উত্তর:


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

@ অলি: +1 আমি সবেমাত্র নতুন কিছু শিখেছি - column। এর আগে ব্যবহার করিনি।


3

lsউবুন্টু এবং অন্যান্য লিনাক্স এবং ইউনিক্স অপারেটিং সিস্টেমগুলিতে ফাইল তালিকাভুক্ত করার জন্য একটি স্ট্যান্ডার্ড কমান্ড। lsশিখতে বিশেষভাবে দরকারী কারণ আপনি এটি দেখতে পাবেন এমন প্রতিটি ইউনিক্স সিস্টেমে এটি ইনস্টলড পাবেন। ডিফল্টরূপে চলমান এটি বর্তমান ডিরেক্টরিতে কেবল ফাইলগুলি প্রদর্শন করে।

তবে -R'পতাকা' হল রিকার্সিভ বিকল্প (নোট রাজধানী আর না ) যা পাশাপাশি সব উপ-ডিরেক্টরির প্রদর্শন করবে।

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

আপনি যদি লুকানো ফাইল / ফোল্ডার ( নটিলাসের Ctrl+ সমতুল্য H) ও দেখাতে চান তবে -a'সমস্ত' পতাকাটি যুক্ত করুন।

এ জাতীয় কিছু দিতে আপনি পতাকাগুলিকে একত্রে একত্রিত করতে পারেন:

ls -lR

আপনি যদি এটি কোনও শালীন আকারের ফোল্ডারে চালান তবে আপনি দেখতে পাবেন এটি একটি বিশাল দীর্ঘ আউটপুট তৈরি করে যা আপনার স্ক্রিনটি খুব দ্রুত স্ক্রোল করে। এটি পেতে, আপনি lsনামক একটি প্রোগ্রামের মাধ্যমে আউটপুটকে 'পাইপ' করতে পারেন less(নামটি একই রকমের একটি প্যারোডি moreযা প্রথমে ছিল তবে আরও বৈশিষ্ট্য রয়েছে)।

ls -lR | less

এটি আপনাকে আরামদায়ক গতিতে আউটপুটটি যেতে পেজআপ / ডাউন পাশাপাশি, উপরে / ডাউন তীর কীগুলি ব্যবহার করার অনুমতি দেবে।


0

ক্রুসাডার ব্যবহার:

  1. অনুসন্ধান (Ctl-S) ব্যবহার করুন।
  2. "সাব ডিরেক্টরিতে অনুসন্ধান" বন্ধ করুন।
  3. "অনুসন্ধান" ক্লিক করুন।
  4. অনুসন্ধান শেষ হয়ে গেলে, "তালিকায় ফিড থেকে" ক্লিক করুন।

এটি আপনাকে অন্য প্যানেল ইত্যাদিতে টেনে নিয়ে পুরো লটটি প্রক্রিয়া করার অনুমতি দেবে etc.


0

কিভাবে একটি সম্পর্কে নটিলাস স্ক্রিপ্ট ?

#!/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"

ইনস্টলেশন নির্দেশাবলী: আমি কীভাবে একটি নটিলাস স্ক্রিপ্ট ইনস্টল করতে পারি?


0

আমি এটির জন্য বিশেষভাবে একটি প্রোগ্রাম তৈরি করেছি - ডিরেক্টরি স্ন্যাপশট
এটি একটি ডিরেক্টরি মাধ্যমে পুনরাবৃত্তভাবে পুনরাবৃত্তি করে এবং সুন্দরভাবে কাঠামোগত এইচটিএমএল ফাইলগুলিতে এর মুখোমুখি সমস্ত ফাইল এবং ফোল্ডারগুলির নাম এবং আকার সংরক্ষণ করে, যার ইনপুট ডিরেক্টরিটির মতো একটি সংস্থা রয়েছে।
অন্য কথায়, এটিকে আদেশ dir /sবা tree /fআদেশের হাইপার-লিঙ্কযুক্ত সংস্করণ হিসাবে ভাবা যেতে পারে ।


আপনি লিখেছেন dirএবং treeডস-স্টাইলের বিকল্প সহ, তাই আমাকে জিজ্ঞাসা করতে হবে, উবুন্টুতে এই কাজ করবে?
wjandrea

হ্যাঁ, আমি প্রতি সপ্তাহান্তে আমার উবুন্টু ইনস্টলেশনটি চালানোর জন্য এটি নির্ধারিত করেছি। যদিও এটি সি ++ এবং বুস্ট ব্যবহার করে নির্মিত হয়েছে, তাই বাইনারি সংকলন করা এবং তৈরি করা কিছুটা শক্ত হবে be এজন্য আমি পাইথনে এটি পোর্ট করার প্রক্রিয়াধীন। যাইহোক, আপনি চাইলে আমি পূর্বনির্ধারিত বাইনারি দিতে পারি।
আনমল সিং জাগি

0

নটিলাস

  1. তালিকা দৃশ্যে সাবফোল্ডারগুলি প্রসারিত সক্ষম করুন
  2. একটি ফোল্ডারে ক্লিক করুন এবং সাবডিরেক্টরিগুলির একটি স্তরকে প্রসারিত করতে তারকাচিহ্ন ( *নামপ্যাডে, বা 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 দরিদ্র কোড ফর্ম্যাটিং, পর্যাপ্ত ব্যাখ্যা নেই। এবং আপনি একটি উপাধি তৈরি করবেন কেন?
wjandrea
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.