在 Android Studio 中将 5 种尺寸的图像放入 5 个可绘制文件夹中的快速方法

在 Android Studio 中将 5 种尺寸的图像放入 5 个可绘制文件夹中的快速方法

我已经下载了一个 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 全局变量和路径以适应您的实际环境。
您可以替换mvcp复制文件而不是移动它们。
您可以编写mv -i以在覆盖任何现有文件之前询问,或者mv -n跳过已存在的文件并且不覆盖任何内容。 存在相同的开关cp

但是,请注意,mv也不会cp创建缺失的目录,因此请确保每个文件的目标路径都已存在。

相关内容