在Linux终端中,切换驱动器的等效命令是什么?

在DOS中,我通过键入 c: , d: , e: 等来切换不同的驱动器。但在Linux中,这种方式不起作用。
请问有人可以告诉我如何在不同的驱动器之间切换吗?

1是的..第一次使用Linux。得学很多东西。 - saiy2k
只是为了澄清,因为这是一个常见的误解,会导致更多的理解困难:DOSBox 是一个模拟器,cmd.exe 是非DOS基础的Windows版本的命令行解释器,而COMMAND.COM 是DOS的系统壳。虽然用户与这些程序的交互和外观可能相似,但它们并不相同。 - LiveWireBT
7个回答

Linux实际上没有一种与“驱动器”直接交互的方式,除非使用访问分区的系统工具;它们通常需要指定包含分区的驱动器。但是,如果每个驱动器只有一个分区,那就无关紧要了。
无论如何,要访问驱动器,实际上需要以某种方式指定分区,通常是通过类似于/dev/sda1(第一个驱动器上的第一个分区)或/dev/sda2(第一个驱动器上的第二个分区)的定义。使用磁盘工具或gparted,您可以以图形方式查看所有分区。如果只使用终端,我发现命令“blkid”很方便,可以列出带有其UUID的驱动器。我使用以下格式:
sudo blkid -c /dev/null

使用终端,你需要挂载一个分区才能真正地使用它。这实际上很容易做到。在大多数情况下,您会想要将空目录用作“挂载点”;如果目录不为空,则其内容将被掩盖并在挂载期间无法使用。这在某些情况下可能会有用,例如测试或暂时更改某些其他原因的配置,因为它将减轻重命名或删除当前内容的必要性。
如果您有一个名为/mnt/drive2(/mnt通常用于此处,但如果您愿意,它可以位于您的主目录中)的目录,并且您的驱动器为/dev/sdb,拥有单个分区,则最简单的命令是:
sudo mount -t type /dev/sdb1 /mnt/drive2

其中"type"是blkid命令中显示的类型,例如ntfs、ext4等。

编辑:为了进行实验,请放心尝试mount命令。这只是临时的,直到您重新启动(或使用"umount"命令卸载)。要使其永久生效,您需要将其输入到/etc/fstab中。如果您想这样做,可以创建一个条目进行实验,然后使用命令"mount -a"来挂载/etc/fstab中的所有内容。如果有错误,它会告诉您,您可以进行更正并重复操作,直到成功为止。


1第一个驱动器的第一个分区是sda1,没有sda0。 - enzotib
哎呀,对不起,你说得对。我已经习惯使用UUID了,以至于忘记了这一点。而且由于我有很多分区,我总是需要查找它们来确定要使用哪一个,所以我没有考虑到这个问题。我会编辑我的回答,并做个注释,这样你的评论就不会显得格格不入了。 - Marty Fried
对于Debian来说,所有的东西都在mnt目录下。要进入特定的驱动器和目录,可以使用命令cd mnt/<your_drive>/<your_directory>。例如,cd mnt/d/Github - Wahab Shah
@WahabShah:嗯,并不是所有东西。也许只有自动挂载的驱动器——我不使用Debian,所以不确定。但是这篇帖子除了/mnt以外从未提到其他任何内容,所以你的评论实际上并不适合。 - Marty Fried

Ubuntu将所有附加磁盘挂载在/media目录下,因此请使用
cd /media/$USER/<your-drive-name>

就像下面的答案一样,目录是cd /media/$USER/<your drive name> - Bobort
对于Debian来说,所有的东西都在mnt目录下。通过cd mnt/<你的驱动器>/<你的目录>命令可以进入相应目录。例如,cd mnt/d/Github可以进入mnt目录下的d驱动器中的Github目录。 - Wahab Shah

硬盘(你们称之为驱动器)包含分区,每个分区包含一个文件系统。
在Linux和Unix中,有一个主文件系统称为“根”文件系统,并用“/”表示。其他文件系统(真实或虚拟)被“挂载”在根文件系统上的“挂载点”上,即一个空目录,用作特定文件系统的起始点,以便所有文件都可以作为根目录的子目录访问。
如果您输入不带选项的命令“mount”,您将看到类似以下内容的信息:
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=764668k,nr_inodes=191167,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=153392k,mode=755)
/dev/sda5 on / type ext4 (rw,noatime,errors=remount-ro,user_xattr,barrier=1,data=ordered)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime,size=306784k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,relatime,size=306784k)
/dev/sda7 on /media/data type ext4 (rw,noatime,user_xattr,acl,barrier=1,data=ordered)
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
XXX.XXX.163.168:/media/data/ on /media/data/mnt type nfs4 (rw,nosuid,noexec,relatime,vers=4,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=XXX.XXX.163.76,minorversion=0,local_lock=none,addr=XXX.XXX.163.168)
gvfs-fuse-daemon on /home/enzotib/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)

在这里你可以看到分区/dev/sda5(硬盘/dev/sda的第五个分区)被挂载在/上,因此它是根分区。
此外,你还可以看到另一个分区/文件系统/dev/sda7被挂载在/media/data上,所以cd /media/data实际上相当于Windows术语中的d:
正如你所见,此输出中有许多其他已挂载的文件系统,它们都是虚拟文件系统,即不对应于磁盘分区。你还可以看到一个NFS挂载的文件系统,它是通过网络与另一台机器上可用的真实文件系统相关联的虚拟文件系统(输出行中的IP地址部分被我故意模糊处理)。
你可以看到只需一个结构就能访问所有文件,有时甚至包括远程文件的简便性。

相关问题:


1使用lsblk可能更容易阅读,并且只列出块存储设备(没有sysfs、proc、cgroup等)。 - LiveWireBT
输入cd ~返回到主目录 - Aakash
1@AakashShah:cd ~cd的简化版本,功能相同。 - enzotib

很简单
cd /media/$USER/{the name of the drive}

将来,如果你忘记了,只需打开文件管理器,选择一个随机的文件夹,然后在空白区域上右键点击 -> 属性,然后查看“位置”。

你也可以直接浏览到你想要的驱动器上的文件夹,然后右键点击,在终端中打开。

Ubuntu可以使用,从您的主目录开始(删除<和>并将"yourusername"替换为您在Linux中登录的实际用户名,将"drive name"替换为您硬盘的名称)。
cd /media/<yourusername>/<drive name>

所有的挂载磁盘都在 /media/yourusername/ 目录下。如果你不知道驱动器的名称,你可以随时在文件管理器中查看,或者通过终端(再次从你的主目录)查看。
ls /media/<yourname>/

你可以使用所描述的sd#mnt,但是我认为你在寻找一个简单的答案。

你提供的命令使用了绝对路径,并不需要在用户的主目录中运行。 - jkt123

其实,对我来说就是这样的:
cd /media/<user>/New\ Volume/

不知道为什么会出现反斜杠,我猜是因为空格的原因吧?

2是的,这是因为空间的原因。 - muru
1是的,我会避免在文件夹名称、磁盘名称甚至文件名中使用空格。只需使用驼峰命名法即可。 - Bobort
除非你处在一个实时的商业环境中:绝对要在目录名称中使用空格!强迫自己去学习!如果系统出现故障?修复它!进步不是懦夫的领地。 - John