🙄

Bashでzipファイルを検索し、別のディレクトリにコピーする

2024/12/21に公開

システム内のzipファイルを検索して別のディレクトリにコピーする場合、Bashでは「find」コマンドと「cp」コマンドを使うことで実現できます。この記事では、簡単に実現できる方法を簡単な解説と一緒に解説します。

基本コマンド

zipファイルを検索して別のディレクトリにコピーするための基本コマンドは次の通りです。

find /path/to/search -type f -name '*.zip' -exec cp {} /path/to/destination \;

構文の解説

  • find /path/to/search:
    検索するベースディレクトリを指定します。例えば、/home/user/documentsなどのパスを指定します。

  • -type f:
    検索対象をファイルみに限定します。ディレクトリは除外されます。

  • -name '*.zip':
    名前が.zipで終わるファイルを検索します。検索したいファイルの括弧を付けた標準を記載してください。

  • -exec cp {} /path/to/destination \;:
    検索結果に対し、各ファイルをcp(コピー)します。{} は検索されたファイルのパスに置換されます。/path/to/destinationにファイルをコピーします。

例文

例えば、/home/user/documentsにあるすべてのzipファイルを/home/user/backupにコピーしたい場合、次のように書きます。

find /home/user/documents -type f -name '*.zip' -exec cp {} /home/user/backup \;

ポイント

  1. このコマンドは「find」を使ってサブディレクトリを再帰的に検索するので、大規模ディレクトリでは時間がかかる場合があります。

  2. 別の検索条件が必要な場合は「-name '*.zip'」の部分を変更してください。

  3. パスにスペースを含む場合は「\ 」を使ってエスケープすることを忘れないようにしましょう。

Discussion