本記事ではLinuxでディレクトリ内にある指定ファイルを複数一括でコピーする方法を解説します。
コピーだけでコマンドを考えるのって面倒ですよね。
本記事を読んで少しでも面倒を減らしてもらえたらうれしいです。
実行環境
OS:CentOS Linux release 7.8.2003(Core)
ディレクトリ構成
img
|-test1.jpg
|-test2.jpg
|-test3.jpg
|-test4.png
|-test5.png
output
今回の上記のようなディレクトリ構成だと手動でコピペしてもいいですが、ファイル数が何万単位になってくると手動でjpgだけだったり、指定のファイルだけをだったりを抽出してコピーするのは面倒ですよね。
やりたいこと
シェルスクリプトを作成せずに、imgディレクトリにあるjpgファイルだけを一括でoutputディレクトリにコピーしたい。
pngはコピーしたくない。
Linuxでディレクトリ内にある指定ファイルを複数一括でコピーするコマンド
まず、コピーしたいファイルであるjpegファイルの一覧を作成します。
find ./ -name "*.jpg" -type f > jpeglist.txt
jpegファイルのリストをインプットにしてxargsで一括コピーする
cat ./jpeglist.txt | xargs -I {} cp {} ./output
実行結果
output
|-test1.jpg
|-test2.jpg
|-test3.jpg
うみうま
xargs考えた人本当にありがとう。
Linuxのコマンドはコツをつかめばぶっちゃけwindowsよりも便利で早く処理できるような時もあります。Linuxについて学んでおけば生産性上がること間違いないしです。
LinuxのコマンドはMacでも使えますので、本当に学んで損がないと思います。
Linux初心者おすすめ本↓
リンク
コメント