2016-05-23 2 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

関連する問題