1. 程式人生 > >Linux用樹形結構顯示目錄結構

Linux用樹形結構顯示目錄結構

               

在有些Linux上自帶了tree命令來一樹狀結構顯示一個目錄,但是在有些linux上沒有自帶這個程式,所以這裡用python寫了一個小程式來實現這個功能,程式碼如下:

[python] view plain copy print?
  1. #!/usr/bin/python
  2. import os, sys, string  
  3. class XXTree:  
  4.     def __init__(self):  
  5.         pass
  6.     def printHelp(self, cmd):  
  7.         print'Please use the following cmd:'
  8.         print'    ' + cmd + 
    ' dir'
  9.         print'e.g.'
  10.         print'    ' + cmd + ' /home/fkong/tmp'
  11.     def getTree(self, dir):  
  12.         list = self.getList(dir, 0)  
  13.         treelist = []  
  14.         for i in range(0, len(list)):  
  15.             fullpath = list[i]  
  16.             parpath = os.path.dirname(list[i])  
  17.             filename = os.path.basename(list[i])  
  18.             if(fullpath == dir):   
  19.                 treelist.append(fullpath)  
  20.                 continue
  21.             path = fullpath.replace(dir, "")  
  22.             names = path.split("/")  
  23.             name = "`---" + names[len(names) - 1]  
  24.             for j in range(1, len(names) - 1):  
  25.                 name = "    "
     + name  
  26.             treelist.append(name)  
  27.             pos = name.index("`")  
  28.             j = i - 1
  29.             while j > 0:  
  30.                 name = treelist[j]  
  31.                 if(name[pos] == '`'or name[pos] == ' '):  
  32.                     name = name[0: pos] + "|" + name[pos + 1: len(name)]  
  33.                     treelist[j] = name  
  34.                 else:  
  35.                     break
  36.                 j = j - 1
  37.         for i in range(0, len(treelist)):  
  38.             print treelist[i]  
  39.     def getList(self, dir, layer):  
  40.         list = []  
  41.         if layer == 0: list.append(dir)  
  42.         files = os.listdir(dir)  
  43.         for file in files:  
  44.             file = os.path.join(dir, file)  
  45.             if os.path.isdir(file):  
  46.                 list.append(file)  
  47.                 list += self.getList(file, layer + 1)  
  48.             else :  
  49.                 list.append(file)  
  50.         return list  
  51. if len(sys.argv) != 2:  
  52.     t = XXTree()  
  53.     t.printHelp(sys.argv[0])  
  54. else:  
  55.     t = XXTree()  
  56.     dir = sys.argv[1]  
  57.     t.getTree(dir)  
#!/usr/bin/pythonimport os, sys, stringclass XXTree: def __init__(self):  pass  def printHelp(self, cmd):  print 'Please use the following cmd:'  print '    ' + cmd + ' dir'  print 'e.g.'  print '    ' + cmd + ' /home/fkong/tmp' def getTree(self, dir):  list = self.getList(dir, 0)  treelist = []    for i in range(0, len(list)):   fullpath = list[i]   parpath = os.path.dirname(list[i])   filename = os.path.basename(list[i])   if(fullpath == dir):     treelist.append(fullpath)    continue       path = fullpath.replace(dir, "")   names = path.split("/")   name = "`---" + names[len(names) - 1]   for j in range(1, len(names) - 1):    name = "    " + name   treelist.append(name)      pos = name.index("`")   j = i - 1   while j > 0:    name = treelist[j]    if(name[pos] == '`' or name[pos] == ' '):     name = name[0: pos] + "|" + name[pos + 1: len(name)]     treelist[j] = name    else:     break    j = j - 1    for i in range(0, len(treelist)):   print treelist[i]   def getList(self, dir, layer):  list = []  if layer == 0: list.append(dir)  files = os.listdir(dir)  for file in files:   file = os.path.join(dir, file)   if os.path.isdir(file):    list.append(file)    list += self.getList(file, layer + 1)   else :    list.append(file)  return listif len(sys.argv) != 2: t = XXTree() t.printHelp(sys.argv[0])else: t = XXTree() dir = sys.argv[1] t.getTree(dir) 

執行效果如下:

$ ./xxtree.py  /home/fkong/workspace/jutility/.svn

/home/fkong/workspace/jutility/.svn

|---format

|---props

|---entries

|---prop-base

|---text-base

|---tmp

|   |---prop-base

|   |---props

|   `---text-base

`---all-wcprops

           

相關推薦

Linux樹形結構顯示目錄結構

                在有些Linux上自帶了tree命令來一樹狀結構顯示一個目錄,但是在有些linux上沒有自帶這個程式,所以這裡用python寫了一個小程式來實現這個功能,程式碼如下:[python] view plain copy print?#!/usr/bin/pythonimport o

tree命令以樹形結構顯示目錄結構

all 定向 命令 --help 幫助信息 sta 基本 幫助 查看 一、安裝 Centos7.4虛擬機執行以下命令安裝:yum install tree 二、基本使用 1.查看幫助信息:tree --help 2.查看root目錄下目錄結構:#tree 3.查

tree:以樹形結構顯示目錄下的內容

tree命令   1、命令詳解       【功能說明】         tree命令的中文意思為“樹”,功能是以樹形結構列出指定目錄下的所有內容包括所有檔案、子目錄及子目錄裡的目錄和檔案。       【語法格式】               tree [option] [directory]

tree 以樹行形結構顯示目錄下的內容

base gpo nor cal out pos rect .bashrc 文件的 1. 命令功能   tree中文意思“樹”,以樹形結構顯示目錄內容。、 2. 語法格式   tree [option] [directory]   tree 選項 目錄 3. 使

Linux入門——文件系統目錄結構

size 特殊 .com pan 動態 GC 系統目錄結構 color spa 不同操作系統對於文件系統的組織是不一樣的,當前主流的兩大類操作系統windows和Linux它們在文件系統組織方式上有很大差別。windows的文件系統是以驅動器盤符為基礎,這樣文件是掛載在分區

Linux 使用者、許可權 Linux之文件與目錄結構

  目錄結構 Linux和Windows目錄結構的組織形式有很大不同,   Windows     劃分出了“盤”的概念(C盤、D盤、E盤),已經建立檔案系統的硬碟分割槽被掛載到某一個目錄下,使用者通過操作目錄來實現磁碟讀寫。     以反斜槓(\)分割目錄   Linu

Linux初識 VMware與Centos系統安裝 Linux之文件與目錄結構

關於虛擬機器的安裝 參考:VMware與Centos系統安裝 Linux和其他語言有些不同   如果輸入命令後沒有返回(這證明輸入的命令沒錯)   如果輸入的命令有返回(命令不一定是錯的,檢視命令除外) 第一次使用Linux建議將防火牆和selinux永久關閉(個人測試) 命

Linux文件目錄管理 Linux之文件與目錄結構

Linux之文件與目錄結構   Linux檔案系統結構 Linux目錄結構的組織形式和Windows有很大的不同。首先Linux沒有“盤(C盤、D盤、E盤)”的概念。已經建立檔案系統的硬碟分割槽被掛載到某一個目錄下,使用者通過操作目錄來實現磁碟讀寫。 Linux不

python基礎——Linux系統下的檔案目錄結構

  單使用者作業系統和多使用者作業系統 單使用者作業系統:指一臺計算機在同一時間只能由一個使用者使用,一個使用者獨自享用系統的全部硬體和軟體資源。   多使用者作業系統:指一臺計算機在同一時間可以由多個使用者使用,多個使用者共同享用系統的全部硬體和軟體資源。 UNIX和Linux

Linux基礎《二》目錄結構以及檔案基本操作

tree /  : 以樹形結構列出   以 . 開頭的檔案都是隱藏檔案,所以這兩個目錄必然也是隱藏的,你可以使用 ls -a 命令檢視隱藏檔案) 建立目錄   mkdir -p father/son/grandson   -- 建立父級目錄 建立檔案 touch 

比起Windows,怎樣解讀Linux的檔案系統與目錄結構

Linux 和Windows的檔案系統有些不同,在學習使用 Linux 之前,若能夠了解這些不同,會有助於後續學習。 本文先對Windows和 Linux 上面檔案系統原理、組織概念進行區分,並給出例子、列舉兩者的優缺點以具體說明,最後較為詳細地介紹了 Linux 系統的目錄結構。 Windows

04 Linux根檔案系統和目錄結構及bash特性

Linux檔案系統:   Linux:glibc   程式編譯方式:     動態連結式編譯     靜態連結式編譯   程序的型別:     終端:硬體裝置,在硬體裝置上可以關聯一個使用者介面,從而讓使用者用此介面與作業系統打交道     與終端相關:通過終端啟動     與終端無關:操作引

Linux之文檔與目錄結構

基本 目錄配置 pat cat rhel 7 $path code 輸入 包含 一.Linux文件系統結構 Linux目錄結構的組織形式和Windows有很大的不同。首先Linux沒有“盤(C盤、D盤、E盤)”的概念。已經建立文件系統的硬盤分區被掛

linux下建立svn倉庫目錄結構

第一步: mkdir -p {xxx/{trunk/{bin,doc,src/{bootloader,kernel,rootfs}},tags,branch}} 其中xxx是你要建的工程名 第二步:

word文件中顯示目錄結構、插入目錄

要使word中左側顯示目錄結構,選擇選單欄“檢視”--“文件結構圖”。 如果沒有找到“文件結構圖”,可以自定義新增後重新上述操作。   要插入目錄,請單擊“插入”選單,指向“引用”→“索引和目錄”,出現“索引和目錄”的畫面,點選“目錄”標籤,倘若直接按下“確定”按鈕,

Linux文件系統的目錄結構詳解

rehat 可變 樹形 ESS 頁面 允許 運行時 office clas 一、前 言 文章對Linux下所有目錄一一說明,對比較重要的目錄加以重點解說,以幫助初學者熟練掌握Linux的目錄結構。 二、目 錄 1、什麽是文件系統 2、文件系統的類型

Linux之旅第一篇-目錄結構及操作目錄

一、引言 Linux對java開發來說也是一項必備的技能,因為專案基本都是部署在Linux作業系統的伺服器中,雖然專案不一定需要我們去部署,但不管是自己測試環境部署,還是一些生產環境中日誌的檢視,Linux作業系統都是免不了要去接觸的。對於我們開發來說懂得基礎的命令及簡單shell指令碼編寫是必須的。 跳

linux戶和文件目錄管理

用戶和目錄文件管理Linux用戶及權限管理用戶管理 多用戶多任務的操作系統 用戶類型 管理員用戶 root 普通用戶 系統用戶/程序用戶用戶相關的文件: /etc/passwd 用戶信息 格式: 用戶名:x:UID:GID:說明信息:SHELL UID: 1000---60000

linux tree命令以樹形結構顯示文件目錄結構

article ref winscp linu 傳遞 href 顯示文件 nbsp tree http://jingyan.baidu.com/article/acf728fd19c7eff8e510a3eb.html winscp 傳遞文件到ubuntu上用w

Linux下使用tree命令以樹形結構顯示資料夾目錄結構

tree命令功能說明:以樹狀圖列出目錄的內容。 如: tree 以樹狀圖顯示所有檔案 tree -L N 以樹狀圖顯示所有檔案,子資料夾顯示到第 N 層 sudo apt-get install tree 檢視關於tree命令的幫助資訊 tree命令常用使用方法 (1) 顯示當前目錄