2011-11-14 57 views
0

我們有一個paths.txt文件,其中包含文件夾中特定文件的路徑名。 asd/fold2/some.txt
asd/fold2/some/tr6/ok.txt
我們需要將paths.txt中列出的所有文件複製到新文件夾中。 我的問題不是如何複製或移動這些文件,但我怎麼能找到搜索和finaly得到移動或複製他們或任何。查找並複製txt文件中的路徑名中包含的文件

+1

有點困惑。他們是相對的路徑?所以你想要在同一個文件夾中的所有文件,或者你想重建其他地方的文件夾?即你想保留或壓扁結構。 – Sodved

+0

@PadAd:請修改您的問題以包含paths.txt的預期大小,包括行和字符數。祝你好運。 – shellter

回答

2

您想要的:

#!/bin/sh 
# usage : script.sh paths.txt destination 
[ -f $1 ] || exit 
[ -d $2 ] || exit 

while read file 
do 
    cp $file $2 
    echo "cp $file $2" 
done < $1 
+2

有些人會抱怨你使用'cat',它可以用'... done <$ 1'來代替,但是我會在你的while循環周圍使用子流程.-)。也就是說,我認爲你不需要'()'對。好arg陷入前面!祝你好運。 – shellter

+0

@shellter你有沒有必要使用()(這是一個壞的問題:)。我也改變了「<$ 1」,它更漂亮。謝謝。 –

2

,不檢查重複的名稱,它可以是簡單的

cp $(<paths.txt) new_folder/ 
3

您可以使用xargs-a-I選項來做到這一點:

xargs -a files.txt -I __FILENAME__ cp __FILENAME__ dest 

說明:

  • -a:從文件讀取項目而不是標準輸入。
  • -I:在初始參數中替換出現的replace-str(在本例中爲__FILENAME__)與從標準輸入讀取的名稱。
相關問題