在 Bash 脚本中复制不带目录的文件

在 Bash 脚本中复制不带目录的文件

我正在尝试编写一个在启动时运行的脚本,并将任何连接的 USB 驱动器上的任何文件复制到特定目录,但不包含包含的目录。

所以我有一个名为 Data 的 USB 驱动器,数据上有 2 个目录,Dir1 和 Dir2,每个目录中都有一个文件。Dir1File.txt 和 Dir2File.txt。

我想将这两个文件复制到 /home/data 但是如果我运行

rsync -av /media/* /home/data

然后,data 有一个名为 Data 的目录,其中有 Dir1 和 Dir 2,里面有相应的文件。可以这样做吗?

答案1

你可以使用find命令获取所有文件的列表,然后使用循环逐个复制文件。如下所示:

for i in `find /media -type f` ; do cp $i /home/data/ ; done

当然,如果相同的文件名出现在几个地方,那么该文件将被覆盖,您只会得到最后一个。

编辑:最好将复制作为 find 命令的一部分进行,而不是使用循环,如下面的 steeldriver 的评论所述。

相关内容