📜  linux 从收藏夹中隐藏已安装的驱动器 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:17:22.545000             🧑  作者: Mango

Linux 从收藏夹中隐藏已安装的驱动器 - Shell/Bash

在 Linux 系统中,你可以简单地将任何驱动器添加到收藏夹中,以便快速地访问文件或目录。但有时,你可能想要隐藏已经安装的某些驱动器,以保护文件和目录免受未经授权的访问。在本文中,将介绍如何使用 Shell/Bash 脚本以及文件系统操作命令在 Linux 中隐藏已安装的驱动器。

1. 获取已安装的文件系统列表

首先,我们需要获取已安装的文件系统列表,以确定哪些驱动器需要隐藏。在终端中运行 sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL 命令,该命令将返回已安装的所有文件系统的相关信息。

sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL

以下是该命令在我的 Ubuntu 系统上返回的示例输出:

NAME        FSTYPE     SIZE MOUNTPOINT                        LABEL
sda                     128G                                      
├─sda1      ext4      98.5G /                                  
├─sda2      swap        32G [SWAP]                             
└─sda3      ext4       1.5G /boot/efi                         
sdb       iso9660    30.9G /media/user/Windows 10             WIN10

在这个示例中,sdb 驱动器是我们想要隐藏的驱动器。因为它被挂载到 /media/user/Windows 10 目录下,我们可以在终端中使用 umount /media/user/Windows 10 命令卸载它。

2. 编写 Shell/Bash 脚本

现在,我们将编写一个 Shell/Bash 脚本,该脚本将获取已安装的文件系统列表,并将找到的所有驱动器卸载。在终端中创建一个新的文件,并为其命名为 hide-drives.sh,然后在其中按照以下代码片段编写脚本:

#!/bin/bash
for drive in $(sudo lsblk | grep -E '^sd[a-z]+ ' | awk '{print $1}'); do
    mountpoint=$(df -h | grep -E "^/dev/$drive[0-9]* " | awk '{print $6}')
    if [ ! -z "$mountpoint" ]; then
        sudo umount $mountpoint
    fi
done

此脚本将获取已安装的所有文件系统,并根据 Linux 命名约定筛选驱动器名称(即,以 sd 开头且后面跟一个小写字母)。对于每个找到的驱动器,它会检查它是否已经挂载,并在需要时卸载它。

3. 运行 Shell/Bash 脚本

现在,我们可以运行 hide-drives.sh 脚本,在终端中运行以下命令:

bash hide-drives.sh

此命令将执行 hide-drives.sh 脚本,该脚本将卸载已安装的驱动器。要再次显示这些驱动器,请重新挂载它们或重新启动系统。

4. 结论

在本文中,我们已经介绍了如何使用 Shell/Bash 脚本和文件系统操作命令来隐藏已安装的驱动器。使用这种方法可以增加文件和目录的保护,以免受到未经授权的访问。