GNU/Linux >> Linux の 問題 >  >> Linux

ファイルを検索してコピーする

cp -t /home/shantanu/tosend を使用する必要があります 引数がソースではなくターゲットディレクトリであることを伝えるため。その後、-exec ... + に変更できます。 cp を取得するために 一度にできるだけ多くのファイルをコピーします。


見つかったファイルを /home/shantanu/tosend にコピーすることが目的の場合 、 cp への引数の順序があります 逆:

find /home/shantanu/processed/ -name '*2011*.xml' -exec cp "{}" /home/shantanu/tosend  \;

注意:find コマンド使用 {} 一致したファイルのプレースホルダーとして。


私はこのような問題に直面しました...

実際、find を処理するには 2 つの方法があります。 copy のコマンド出力 コマンド

<オール>
  • find の場合 コマンドの出力にスペースが含まれていません。つまり、ファイル名にスペースが含まれていない場合は、以下のコマンドを使用できます:

    構文:find <Path> <Conditions> | xargs cp -t <copy file path>

    例:find -mtime -1 -type f | xargs cp -t inner/

  • しかし、ほとんどの場合、本番データ ファイルにはスペースが含まれている可能性があります。したがって、ほとんどの場合、以下のコマンドの方が安全です:

    構文:find <path> <condition> -exec cp '{}' <copy path> \;

    find -mtime -1 -type f -exec cp '{}' inner/ \;

  • 2 番目の例では、最後の部分、つまりセミコロンも find の一部と見なされます。 このコマンドは、Enter ボタンを押す前にエスケープする必要があります。そうしないと、次のようなエラーが発生します

    find: missing argument to `-exec'
    

    あなたの場合、コピー コマンドの構文が間違っています 検索ファイルを /home/shantanu/tosend にコピーするため .次のコマンドが機能します:

    find /home/shantanu/processed/ -name '*2011*.xml' -exec cp  {} /home/shantanu/tosend \;
    

    Linux
    1. MySQL、PHP、Apacheの設定ファイルを見つける方法

    2. プロのようにLinuxでファイルとディレクトリを探す

    3. 別のディレクトリにある最初のNファイルをコピーしますか?

    1. ファイルを検索して tar (スペースを含む)

    2. ls と grep を使用して実行可能ファイルを見つける

    3. ファイルを見つけてそのサイズを合計するにはどうすればよいですか?

    1. ディレクトリとサブディレクトリ内のファイル数を見つける方法

    2. Linuxで最大のファイルとディレクトリを探す

    3. SCPとRsyncでファイルをコピーする