linux - 我想将不同的文件夹和其中的文件(所有文件夹都相同)复制到另一个文件夹 - unix

标签 linux shell for-loop copy directory

假设我有多个文件夹,每个文件夹中有很多文件,但我感兴趣的文件是“xyz.p”:

~/home/A/xyz.p

~/home/B/xyz.p

~/home/C/xyz.p

~/home/D/xyz.p

现在我想将这些文件夹中的每一个仅包含一个文件“xyz.p”复制到另一个目录:

~/审判/A/xyz.p

~/trail/B/xyz.p

~/trail/C/xyz.p

~/trail/D/xyz.p

我不想复制文件夹 A、B、C、D 中的其他文件。

目前我已经尝试长时间使用 shell 脚本,但它并没有真正起作用。

最佳答案

我发现解决这个问题最简单的方法是编写一个简单的脚本。

#!/bin/bash

STARTDIR="home"
TARGETDIR="test"

FILENAME="xyz.p"

for DIR in 'A' 'B' 'C' 'D';
do
  cp -rfv $STARTDIR/$DIR/$FILENAME $TARGETDIR/$DIR/$FILENAME
done

此脚本从 startdir/subdir 获取文件并将其放入 targetdir/subdir 目录中。

可以将子目录放入 for 命令行的单引号内的列表中。

-rfv 意味着副本将是递归的(包括所有子目录)、强制的和详细的(告诉你它在做什么)。

这个脚本对我来说的输出是

$./moveit.sh
`home/A/xyz.p' -> `test/A/xyz.p'
`home/B/xyz.p' -> `test/B/xyz.p'
`home/C/xyz.p' -> `test/C/xyz.p'
`home/D/xyz.p' -> `test/D/xyz.p'

希望这对您有帮助。
在提问之前请尝试多做一些研究:)

关于linux - 我想将不同的文件夹和其中的文件(所有文件夹都相同)复制到另一个文件夹 - unix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30837955/

相关文章:

mysql 释放删除的表

java - 动态设置 jTextField 值

python - For-Loop打印整个范围

linux - 如何在 Neos CMS 中创建新项目?

Java Socket 服务器应用程序 : Getting the packet after long delay

python - 使用python将变量传递给bash命令

shell - Unix Shell 脚本中的变量问题

linux - 某些环境变量在某些情况下不会加载

c - C 中的嵌套 for 循环模式

c++ - 如何在 Linux 中的 GDB/Nemiver 中显示 C++ STL 容器