如何在多个子文件夹中创建特定的文件夹结构

如何在多个子文件夹中创建特定的文件夹结构

我有一个如下所示的文件夹结构

drwxrwxr-x+  9 root            admin       306 May  3 10:19 .
drwxrwxrwx  15 root            admin       510 May  5 16:14 ..
drwxr-xr-x+  3 root            admin       102 May  3 10:19 Scripts
drwxr-xr-x+ 74 root            admin      2516 May  3 10:20 Windows 10
drwxr-xr-x  90 root            admin      3060 May  3 10:03 Windows 7

在 /Scripts 文件夹中,我有以下 shell 脚本

mkdir_drivertypes.sh

以下是 mkdir-drivertypes.sh 脚本的内容

mkdir BIOS
mkdir Video
mkdir Audio
mkdir Network
cd Network
mkdir Wired
mkdir Wireless
mkdir Bluetooth
cd .. 
mkdir Chipset
mkdir Modem
mkdir System
mkdir Storage
mkdir Other
mkdir Input
rm mkdir_drivertypes.sh

基本上,该脚本仅创建一个文件夹结构来包含我要创建的每种类型的驱动程序。

以下是Windows 7文件夹的结构:

drwxrwxr-x+ 10 root  admin      340 Apr 28 09:28 Alienware 14
drwxrwxr-x+ 12 root  admin      408 Apr 21 10:11 Alienware 17
drwxrwxr-x+ 13 root  admin      442 Apr 28 08:44 Alienware Aurora
drwxrwxr-x+ 13 root  admin      442 May  2 08:42 Alienware Aurora r2
drwxrwxr-x+ 12 root  admin      408 Apr  6 09:30 Alienware Aurora r3
drwxrwxr-x+ 14 root  admin      476 Apr  5 07:53 Alienware Aurora r4
drwxrwxr-x+ 12 root  admin      408 Mar 28 08:32 Alienware m11x r2
drwxrwxr-x+ 12 root  admin      408 Mar 25 12:02 Alienware m11x r3
drwxrwxr-x+  6 root  admin      204 Apr 26 12:51 Alienware m14
drwxrwxr-x+ 12 root  admin      408 Apr 28 08:58 Alienware m14x
drwxrwxr-x+ 14 root  admin      476 Mar 28 09:29 Alienware m14x r2
drwxrwxrwx+ 11 root  admin      374 Apr 28 08:43 Alienware m15x
drwxrwxr-x+ 10 root  admin      340 Apr 26 08:58 Alienware m17x r2
drwxrwxr-x+ 11 root  admin      374 Apr 26 12:20 Alienware m17x r3
drwxrwxr-x+ 14 root  admin      476 Apr 26 12:20 Alienware m17x r4
drwxrwxr-x+ 12 root  admin      408 Apr  7 11:17 Alienware m18x
drwxrwxr-x+ 15 root  admin      510 Mar 28 09:57 Alienware m18x r2
drwxrwxr-x+ 13 root  admin      442 May  2 08:30 Alienware x51
drwxrwxr-x+ 15 root  admin      510 May  1 21:36 Alienware x51 r2
drwxrwxr-x+ 31 root  admin     1054 May  1 14:44 Dell Inpirion 17 n7010
drwxrwxr-x+ 16 root  admin      544 Mar 28 10:54 Dell Inspiron 14r n4010
drwxrwxr-x+ 13 root  admin      442 May  2 08:53 Dell Inspiron 14r n4110
drwxrwxrwx+ 35 root  admin     1190 Apr 28 00:15 Dell Inspiron 15 n5010
drwxrwxr-x+ 13 root  admin      442 Mar 28 11:09 Dell Inspiron 15 n5050
drwxrwxr-x+ 13 root  admin      442 May  2 09:03 Dell Inspiron 15r 5520
drwxrwxr-x+ 12 root  admin      408 Mar 28 11:23 Dell Inspiron 15r 5537
drwxrwxr-x+ 15 root  admin      510 Mar 28 11:34 Dell Inspiron 15r n5110
drwxrwxr-x+ 13 root  admin      442 Apr 25 11:17 Dell Inspiron 17 3721
drwxrwxr-x+ 13 root  admin      442 Apr 22 08:20 Dell Inspiron 17r 5721

不断地重复,您就会明白 - 每个 Windows 文件夹都包含制造商、型号、系列等的名称。

以前,我将 mkdir_drivertypes.sh 文件复制到与制造商/型号/系列相对应的给定文件夹中,执行创建文件夹结构的脚本,然后脚本将从该目录中删除自身。

但是,现在我们有大量 Windows 10 驱动程序需要为所有相同型号的机器进行组织。我创建了一个 Windows 10 文件夹,通过运行 ls -1b 复制了 Windows 7 文件夹的顶层结构(顺便说一下,我在 Mac 上执行此操作),这会生成一个长列表格式的输出,但没有任何权限或文件/文件夹所有者。我使用该列表创建了另一个 mkdir 脚本来创建顶层结构,但现在我正在寻找一种方法来自动在每个文件夹中创建驱动程序文件夹,而无需在每个文件夹上运行脚本。

所以我的问题是,如何使用我的 mkdir_drivertypes.sh 脚本自动在 \Windows 10\Manufacturer Model Series\ 中创建子文件夹?

我可以用一些替代方法(我完全猜测有一个我没有考虑的好替代方法)来创建这些子文件夹。

答案1

以下内容将在bashMac、Linux 以及即将推出的带有 bash 的 Windows 10 中运行。

不要到处复制脚本mkdir_drivertypes.sh,而是考虑在 中使用 bash 函数.bash_profile。例如, 中的以下内容~/.bash_profile将允许您在当前工作目录中创建所需的目录结构。:

mkdir_drivertypes()
{
    mkdir -p ./{BIOS,Video,Audio,Network,Chipset,Modem,System,Storage,Other,Input}
    mkdir -p ./Network/{Wired,Wireless,Bluetooth}
    return 0
}

您可以退出终端并打开一个新终端来访问该功能,或者source ~/.bash_profile在当前终端中访问它

cd到您想要创建目录结构的目录,然后执行mkdir_drivertypes

在我的系统上:

$ cd Windows10\Manufacturer\Model
$ pwd
/Users/waywardone/Windows10/Manufacturer/Model
$ mkdir_drivertypes 
$ ls -R
Audio   BIOS    Chipset Input   Modem   Network Other   Storage System  Video
./Audio:
./BIOS:
./Chipset:
./Input:
./Modem:
./Network:
Bluetooth   Wired       Wireless
./Network/Bluetooth:
./Network/Wired:
./Network/Wireless:
./Other:
./Storage:
./System:
./Video:

相关内容