2016-09-02 4 views
0

私は多くのサブディレクトリを持つフォルダを持っています。私はhtml.txtファイルを探し、それらを同じ構造の新しいディレクトリに移動したいと思います。 - 私ディレクトリ名を持つファイルの検索とコピー

find . -name "*.html.txt" | cp -t /home/.... 

を使用していますが、名前とディレクトリ構造を維持されていません。 これはどうしてですか?

+0

をあなたが見つける '使用することができます。 -name "* .html.txt" | cpio -pdm/home/where/ever'と入力します。あなたはfindを使うことができます。 -name "* .html.txt" | tar -cf - -T - | tar -xf - -C/home/where/ever'(ただし、単一の 'cpio'コマンドよりも厄介な2つの' tar'コマンドが関係します)。間違いなく他のオプションがあります( 'rsync'、...)。 –

答えて

1

試してみてください。

find . -name '*.html.txt' | xargs cp -t /home --parents 

xargsは特に「検索」の出力と、引数のリストの中に様々なリストをオンにすると便利です。おそらくfind内でexecコマンドを使ってこれを行うこともできますが、私はいつもすぐにそれを見つけるのが難しいと感じています。

--parentsすべての親ディレクトリがファイルのリストにあるように作成するというトリックはありません。

私はこのタイプのコマンドをcshで使用していますが、これもbashで動作するはずです。

は、ほとんどがすでにここに答えた: https://serverfault.com/questions/180853/how-to-copy-file-preserving-directory-path-in-linux

関連する問題