假设我有多个文件夹,每个文件夹中有很多文件,但我感兴趣的文件是“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/