cpコマンドでファイルだけをまとめてコピーする

2022.04.14
2024.03.24
サーバー
cpLinux

はじめに

cpコマンドでファイルをまとめてコピーする方法を紹介します。

ファイルだけをコピーする

まずは、ファイルだけをコピーするコマンドを紹介します。

findコマンドを使ってファイルだけを取得し、-execオプションでcpコマンドを実行して、ファイルだけをコピーします。-maxdepth 0とすることで、指定したディレクトリのファイルだけをコピーできます。

1find src/* -type f -maxdepth 0 -exec cp {} dst/ \;

cpコマンドだけコピーすると

cpコマンドだけでコピーすると、コピー自体はできてしまいますが、エラーメッセージとエラーコードが返ってきてしまいます。

1❯ tree
2.
3├── dst
4└── src
5    ├── src1
6    │   └── test3.txt
7    ├── test1.txt
8    └── test2.txt
9
10cp src/* dst/
11cp: src/src1 is a directory (not copied).
12
13echo $?
141
15
16❯ tree
17.
18├── dst
19│   ├── test1.txt
20│   └── test2.txt
21└── src
22    ├── src1
23    │   └── test3.txt
24    ├── test1.txt
25    └── test2.txt

実際にファイルだけをコピーしてみる

findコマンドと組み合わせて実行すると、エラーメッセージもエラーコードもなしで実行できます。

1❯ tree
2.
3├── dst
4└── src
5    ├── src1
6    │   └── test3.txt
7    ├── test1.txt
8    └── test2.txt
9
10find src/* -type f -maxdepth 0 -exec cp {} dst/ \;
11
12echo $?
130
14
15❯ tree
16.
17├── dst
18│   ├── test1.txt
19│   └── test2.txt
20└── src
21    ├── src1
22    │   └── test3.txt
23    ├── test1.txt
24    └── test2.txt

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee