我已经下载了一个 zip 文件ic_添加.zip材料设计图标。此 zip 包含如下文件夹层次结构:
res --> drawable-hdpi --> ic_add.png
--> drawable-mdpi --> ic_add.png
--> drawable-xhdpi --> ic_add.png
--> drawable-xxhdpi --> ic_add.png
--> drawable-xxxhdpi --> ic_add.png
现在,我的问题是如何将这 5 个图标放入 myProject/res 文件夹内的相应文件夹中?
即里面的图标drawable-hdpi
应该放入myProject/res/drawable-hdpi
。其他的也一样。现在我正在选择一个图标并放入其各自的文件夹中,但是当要复制的图标很多时,这个过程太长了。所以,我想要一些更快捷的方式或者命令如果可能的话。我正在使用Ubuntu 16.04
答案1
我假设将您的档案解压到名为的文件夹后zip
,您将获得以下目录结构:
$ tree -F
.
├── myProject/
│ └── res/
│ ├── drawable-hdpi/
│ ├── drawable-ndpi/
│ ├── drawable-xhdpi/
│ └── drawable-xxhdpi/
└── zip/
├── drawable-hdpi/
│ ├── ic_add.png
│ └── ic_del.png
├── drawable-ndpi/
│ ├── ic_add.png
│ └── ic_del.png
├── drawable-xhdpi/
│ ├── ic_add.png
│ └── ic_del.png
└── drawable-xxhdpi/
├── ic_add.png
└── ic_del.png
然后,您可以使用以下命令简单地将所有目录中*.png
的所有文件移动到其各自的目录中:drawable-*/
zip/
drawable-*/
myProject/res/
for folder in zip/drawable-*/ ; do mv "$folder"/*.png "myProject/res/$(basename $folder)" ; done
它将循环遍历所有zip/drawable-*/
文件夹,通过将源文件夹的最后一个路径部分附加到路径来计算适当的目标目录myProject/res/
,并将所有*.png
文件从源文件夹移动到目标文件夹。
您可以更改 shell 全局变量和路径以适应您的实际环境。
您可以替换mv
以cp
复制文件而不是移动它们。
您可以编写mv -i
以在覆盖任何现有文件之前询问,或者mv -n
跳过已存在的文件并且不覆盖任何内容。 存在相同的开关cp
。
但是,请注意,mv
也不会cp
创建缺失的目录,因此请确保每个文件的目标路径都已存在。