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
10❯ cp src/* dst/
11cp: src/src1 is a directory (not copied).
12
13❯ echo $?
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
10❯ find src/* -type f -maxdepth 0 -exec cp {} dst/ \;
11
12❯ echo $?
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
参考
- cp - Copy only regular files from one directory to another - Unix & Linux Stack Exchange
- unix - Copy only files from one directory to another - Stack Overflow
Share
関連記事
【Linux】ディレクトリ構造を理解する
2021.07.14
【超入門】Vagrantで仮想マシンを動かす
2021.07.18