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

发布于:2024-08-17 ⋅ 阅读:(70) ⋅ 点赞:(0)

一、简介

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

二、代码

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

文件夹结构

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

a.命令示例

file1复制到目录des_dir1/des_dir2/des_dir3/下:

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.命令解释

  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
    

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

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

a.命令示例

file1file2file3复制到目录des_dir1/下:

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.命令示例

file1, file2file3分别复制到目录des_dir1/des_dir2/des_dir3/下:

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


网站公告

今日签到

点亮在社区的每一天
去签到