目录结构如下。
├── input
│ ├── config.ac
│ ├── dir1
│ │ ├── image2.png
│ │ └── image3.jpg
│ ├── dir2
│ └── image1.png
├── main.sh
└── output
基本上,我正在尝试运行以下./main.sh输入输出,我想生成以下内容:
├── input
│ ├── config.ac
│ ├── dir1
│ │ ├── image2.png
│ │ └── image3.jpg
│ ├── dir2
│ └── image1.png
├── main.sh
└── output
├── dir1
│ └── image2.png
├── dir2
└── image1.png
在尝试了一些像find -exec这样的东西之后,我逐步完成了它。我试图将输入的内部目录结构复制到输出中,同时只复制.png文件而不是其他任何内容。 这是我尝试过的:
for DIR in $1/; do
mkdir $2/$DIR
cp $1/$DIR*.png $1/$DIR $2/$DIR
done
这是我的逻辑,for循环将遍历源目录($ 1)中的每个目录结构,然后它将在目标目录($ 2)中创建完全相同的目录。现在,它在其所在的当前目录中查找任何.png文件,并将其复制到刚刚在目标中创建的完全相同的相应目录。 注意,我计划稍后在for循环中对文件进行一些转换
这似乎根本不起作用。我收到以下错误:
cp: cannot stat 'input/input/*.png': No such file or directory
cp: cannot stat 'input/input/': No such file or directory
答案 0 :(得分:2)
从
更改到您要复制的目录然后
tar cf - .| ( cd /other directory; tar xf -)
答案 1 :(得分:0)
您可能对Z = 0 + A * B * C' = A * B * C' = A AND B AND (NOT C)
:
rsync
这应该复制所有目录和png文件。如果您想查看要复制的内容,请添加rsync -a --include '*/' --include '*.png' --exclude '*' input/ output
选项。
(请参阅-nv
个版本here上的说明。)
答案 2 :(得分:0)
我喜欢复制目录树(使用输入/输出结构):
cd input
find . | cpio -pdm ../output
调整'发现'根据需要选择。