PR

Linuxでディレクトリ内にある指定ファイルを複数一括でコピーする方法

Linux
記事内に広告が含まれています。

本記事では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初心者おすすめ本↓

コメント