2012-04-23 51 views
1

我有大量的〜1,000個文件(沒有擴展名,即11051106,5231等)分佈在相應數量的文件夾中。也就是說,它是像這樣一個萬個文件:將多個目錄中沒有擴展名的文件移動到一個目錄中

/users/me/collection/1105/1455/users/me/collection/1106/1466/users/me/collection/1110/1470,等等,等等

我想要做的是找到一種快速移動的子目錄中的所有這些文件(即145514661470等)合併成一個單一目錄(即/users/me/collection-all/)。

說實話,沒有擴展名就把我扔掉了,我似乎一直保留find ing目錄旁邊的文件...他們實際上都是PDF文件,但沒有擴展名。

+0

除了您正在討論的文件的目錄之外,還有其他集合中的任何內容嗎? – Jasper 2012-04-23 13:12:45

+0

@Jasper不,它只是一個子目錄的目錄,每個子目錄都有一個沒有擴展名的文件。 – 2012-04-23 13:17:55

回答

1

這個怎麼樣?

mv /users/me/collection/*/* /users/me/collection-all/ 
4

其實答案很簡單:

你可以找到他們和排除的目錄:「型D」

cp ` find <your directory tree base> ! -type d` <your destination directory> 

的自然會排除類型的結果「目錄」。

HTH

1

我的兩分錢

cd /users/collections/me 
find . -type f -exec mv {} /users/me/collection-all/ \; 
1

你可以試試這個:

#!/bin/bash 

IFS_BACKUP=$IFS 
IFS=$'\n\t' 

for i in $(find $source_directory -type f -iname "*" -print) 
do 
    mv -nv "$i" "$target_directory" 
done 

IFS=$IFS_BACKUP 

exit 

只需確保合適的路徑來替代變量$source_directory$target_directory

相關問題