我需要定期從一組特定的源子目錄(其中有100個)將文件複製到一個「扁平」目錄結構中,即我希望從我似乎無法找到可以查看源子目錄的複製方法&複製不會在目標目錄中重新創建子目錄文件夾結構的文件。Solaris將多個目錄中的文件複製到一個目錄中
任何幫助理解。
我需要定期從一組特定的源子目錄(其中有100個)將文件複製到一個「扁平」目錄結構中,即我希望從我似乎無法找到可以查看源子目錄的複製方法&複製不會在目標目錄中重新創建子目錄文件夾結構的文件。Solaris將多個目錄中的文件複製到一個目錄中
任何幫助理解。
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中的任何文件或子目錄的名稱都包含空格,這將不起作用。
Hey-那很棒:)謝謝! – user3047191
'find $ sourcedir -type f -exec cp'{}'$ destdir \;'是簡寫:) –
右:)我更喜歡循環方法,因爲在大多數情況下,我想做一些類似於no-覆蓋檢查,並且在循環中比在find的奇怪-exec語法中更容易。 –
在shell中,通常它足以執行類似'cp */* destination'的操作。 – opalenzuela