2016-05-23 21 views
2

我正在運行此命令來查找包含(在正則表達式的幫助下)樹形目錄中的「someStrings」的所有文件。如何複製用grep找到的文件

grep -lir '^beginString' ./ -exec cp -r {} /home/user/DestinationFolder \; 

它找到的文件是這樣的:

FOLDER 
a.txt 
-->SUBFOLDER 
    a.txt 
---->SUBFOLDER 
    a.txt 

我要複製所有文件和文件夾,用相同的架構,到目標文件夾,但我不知道該怎麼做。這是重要的複製文件和文件夾,因爲找到的幾個文件具有相同的名稱,我需要保留它。

回答

3

試試這個:

find . -type f -exec grep -q '^beginString' {} \; -exec cp -t /home/user/DestinationFolder {} + 

grep -lir '^beginString' . | xargs cp -t /home/user/DestinationFolder 

但是,如果你想保留目錄結構,你可以:

grep -lir '^beginString' . | tar -T - -c | tar -xpC /home/user/DestinationFolder 

,或者像我一樣,你喜歡是確定你存儲的文件種類(只有文件,沒有符號鏈接),你可以:

find . -type f -exec grep -l '^beginString' {} + | tar -T - -c | 
    tar -xpC /home/user/DestinationFolder 
+0

真棒,它的作品!我不知道它是如何工作的! 該命令創建一些備份文件,我手動刪除它並罰款。朋友,謝謝!!!你救了我的命 – user6372336

相關問題