2016-04-07 39 views
0

文件移動X個,我有以下文件夾結構:Linux的慶典 - 從每個文件夾

maindir 
|-sub1 
|-sub2 
|-sub... 
|-sub1000 

我想實現的是從各子目錄,例如移動。文件的10%,每個文件夾中包含與相同的結構的新文件夾maindir2:

maindir2 
|-sub1 
|-sub2 
|-sub... 
|-sub1000 

在從MAINDIR子目錄假設是文件的下列量(以手鐲編號):

maindir 
|-sub1 (10) 
|-sub2 (100) 
|-sub... 
|-sub1000 (50) 

我想有作爲輸出maindir2如下:

maindir 
|-sub1 (1) 
|-sub2 (10) 
|-sub... 
|-sub1000 (5) 

和MAINDIR:

maindir 
|-sub1 (99) 
|-sub2 (90) 
|-sub... 
|-sub1000 (45) 

請讓我知道這是可能的,最好是bash命令。

回答

1

是的,它是可能的;)

它看起來很醜陋(一行),但工作, 來看,它從MAINDIR內:

find . -type f -exec dirname {} + | uniq -c | while read n d;do echo "Directory:$d Files:$n Moving first:$(($n/10))";mkdir -p ../maindir2${d:1};find $d -type f | head -n $(($n/10)) | while read file;do mv $file ../maindir2${d:1}/;done;done 

問候,

+0

太感謝你了!這正是我所期待的。奇蹟般有效! – domi771