2011-08-02 75 views
0

我試圖複製一個目錄結構(不是文件)進行備份和遷移。我一直在搜索,但我不知道如何將我的搜索短語來獲得我想要的結果。我一直在發現人們提到的第二個命令與我想要得到的最接近。我需要確保它在KSH和BASH中運行。如何獲得絕對路徑下所有最低目錄的列表?

ls -Rl |egrep '^d' 
and 
find/-type d -print 

文件結構的一個例子,我如何想獲得所有的最低(?)的目錄列表與他們的完整路徑前綴。

/var/www 
└── site 
    ├── dir1 
    │ ├── dir11 
    │ ├── dir12 
    │ ├── dir13 
    │ │ └── dir131 
    │ └── dir14 
    ├── dir2 
    └── dir3 
     ├── dir31 
     └── dir32 
      └── dir321 
       ├── dir3211 
       └── dir3212 

##### Will generate the following list. ##### 

/var/www/site/dir1/dir11 
/var/www/site/dir1/dir12 
/var/www/site/dir1/dir13/dir131 
/var/www/site/dir1/dir14 
/var/www/site/dir2 
/var/www/site/dir3/dir31 
/var/www/site/dir3/dir32/dir321/3211 
/var/www/site/dir3/dir32/dir321/3212 

謝謝
LF4

回答

1

否則LS-R | grep ./將給出所有目錄和子目錄的列表,並且可以被輸入到其他所有條目的mkdir中。

這假設你在目錄/ var/www/html中。你可以改變grep,以代替./它使用/ var/www/html或其他。

+0

我可以做到的另一種方式是使用find作爲跟隨。找 。 -type d -print | grep -v .svn | egrep -v'^。$'但它仍然會列出所有目錄。所以你說的是我需要使用sed來刪除父目錄? – LF4

+0

所以你不想在列表中有dir1和dir3?當然,如果你正在做備份,你會希望他們做mkdir dir1,mkdir dir11等? – Josh

+0

我想通過只做mkdir -p來讓它更快,如果它們不存在,它會創建所有父母。 – LF4

相關問題