2016-04-06 8 views
-1

...にファイルを移動します。同じファイルの300バージョンで終わることはありません。300のdifferentsフォルダから新しい単一のフォルダ

LinuxまたはMacの場合。私はそれが簡単なスクリプトで行うことができると思います。私はgrepでcpを試しましたが、うまく動作しません。

$ mkdir /path/to/new_folder 
$ find /path/to/old_folder -type f -exec cp -f '{}' /path/to/new_folder \; 

(これはコピーしたファイルとして、非破壊である)約

おかげ

+0

:あなたはまだあなたが行われているソースフォルダを削除する必要がありますか?何を試しましたか?ファイルを移動またはコピーしますか? –

+0

ディレクトリ構造300の異なるフォルダなどについて詳しく説明できますか?どのようにディレクトリのリストを渡していますか? 質問はちょっと曖昧です。 – 264nm

答えて

-1

ファイルを知的に名前を変更するのはperlです。使いやすく、非常に柔軟です。既存のファイルを壊さないようにするために、あなたがしていることに合ってそれを使うことができます。見つかった順序でそれらを望むなら、それは容易でなければなりません。最初のものだけをコピーしたいのであれば、stat()やそのようなメカニズムを使って簡単に行うべきです。

0

@ trojanfoeの答えがうまくいくが、execとcpの代わりにxargsとmvを使うと〜175倍速で、たとえば〜3秒間で〜300秒間で〜0.02秒に短縮する。

find old_folder -type f -print0 | xargs -0 mv -n -t new_folder 

注:これは繰り返しファイルを破棄するものではなく、無視します。ソースファイルのリストがあり、宛先が何である

rm -rf old_folder 
関連する問題