2013-12-11 178 views
0

我需要定期從一組特定的源子目錄(其中有100個)將文件複製到一個「扁平」目錄結構中,即我希望從我似乎無法找到可以查看源子目錄的複製方法&複製不會在目標目錄中重新創建子目錄文件夾結構的文件。Solaris將多個目錄中的文件複製到一個目錄中

任何幫助理解。

+0

在shell中,通常它足以執行類似'cp */* destination'的操作。 – opalenzuela

回答

0
sourcedir=/root/of/subdirectory/set 
destdir=/where/the/files/go 

find $sourcedir -type f -print | while read file; do cp $file $destdir; done 

或(防止重寫)

find $sourcedir -type f -print | while read file; do base=$(basename $file); test -f $destdir/$base || cp $file $destdir; done 

注意,如果$ sourcedir中的任何文件或子目錄的名稱都包含空格,這將不起作用。

+0

Hey-那很棒:)謝謝! – user3047191

+0

'find $ sourcedir -type f -exec cp'{}'$ destdir \;'是簡寫:) –

+0

右:)我更喜歡循環方法,因爲在大多數情況下,我想做一些類似於no-覆蓋檢查,並且在循環中比在find的奇怪-exec語法中更容易。 –

相關問題