🙄
Bashでzipファイルを検索し、別のディレクトリにコピーする
システム内の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 \;
ポイント
-
このコマンドは「find」を使ってサブディレクトリを再帰的に検索するので、大規模ディレクトリでは時間がかかる場合があります。
-
別の検索条件が必要な場合は「-name '*.zip'」の部分を変更してください。
-
パスにスペースを含む場合は「\ 」を使ってエスケープすることを忘れないようにしましょう。
Discussion