您的当前位置:首页正文

[Linux]将一个文件复制到多个文件夹下

2024-11-10 来源:个人技术集锦

一、简介

本文介绍了在linux下如何使用cp命令将一个文件复制到多个文件夹多个文件复制到一个文件夹多个文件复制到多个文件夹下。

二、代码

假设初始时test/文件夹的结构如下:

1. 将一个文件复制到多个文件夹

a.命令示例

echo ./des_dir1/ ./des_dir2/ ./des_dir3/ | xargs -n 1 cp ./file1

该命令等效于以下命令:

cp ./file1 ./des_dir1/
cp ./file1 ./des_dir2/
cp ./file1 ./des_dir3/

运行后test/文件夹结构如下:

b.命令解释

2. 将多个文件复制到一个文件夹

a.命令示例

cp -t ./des_dir1/ ./file1 ./file2 ./file3

该命令等效于以下命令:

cp ./file1 ./des_dir1/
cp ./file2 ./des_dir1/
cp ./file2 ./des_dir1/

运行后test/文件夹结构如下:

b.命令解释

cp -t path/to/target_directory path/to/file_or_directory1 path/to/file_or_directory2 ...

cp命令的-t参数指定目的路径,将目的路径后的文件复制到目的路径处。

3. 将多个文件复制到多个文件夹

a.命令示例

echo ./des_dir1 ./des_dir2 ./des_dir3/ | xargs -n 1 cp ./file1 ./file2 ./file3

该命令等效于以下命令:

cp ./file1 ./file2 ./file3 ./des_dir1/
cp ./file1 ./file2 ./file3 ./des_dir2/
cp ./file1 ./file2 ./file3 ./des_dir3/

运行后test/文件夹结构如下:

b.命令解释

  1. echo ./des_dir1/ ./des_dir2/ ./des_dir3/
    

    echo命令将des_dir1des_dir2des_dir3给输出流(标准输出)

  2. |
    

    | 管道符,将echo命令的输出给下一个命令,即给xargs

  3. xargs -n 1
    

    xargs命令将接收到的输入(echo的输出即xargs的输入),作为参数输出给下一个命令,即cp命令。xargs默认将输出的参数添加到下个命令的最后-n 1指定了xargs每次传给命令cp一个参数。

  4. cp ./file1 ./file2 ./file3 
    

    cp命令将文件./file1./file2./file3复制到xargs给的参数路径下,即./des_dir1/./des_dir2/./des_dir3/下。

三、参考

[1]. xargs命令
[2]. ChatGPT

Top