![从命令行列出设备上的文件](https://linux22.com/image/877578/%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%88%97%E5%87%BA%E8%AE%BE%E5%A4%87%E4%B8%8A%E7%9A%84%E6%96%87%E4%BB%B6.png)
在 Dolphin 显示屏的左侧,显示的类别之一是“设备”。正如人们所期望的那样,单击任何列出的设备都会显示该设备可用的文件,例如相机或记忆棒。如果设备不是只读的,您甚至可以使用 Dolphin 显示屏将文件添加到设备。但是,如何使用命令行获取相同的文件列表(针对任何列出的设备)ls或者类似的东西?无论设备的性质如何,我都希望方法相同。如果设备是可写的,您将如何从命令行写入它?
答案1
使用命令行时需要记住一点 - 它必须被安装(换句话说,通过编程连接到系统;它可能像 USB 驱动器一样物理连接到 USB 端口,但这并不意味着它已被安装)。
检查设备是否已安装很容易 -lsblk
使用df
命令或mount
无需任何-
标志/选项。
现在,默认情况下,Ubuntu 的 GUI(如 Unity 或 Gnome)会自动挂载您连接的设备。使用纯命令行或不自动执行此操作的 GUI(如openbox
或blackbox
),您必须发出mount
命令 或udiscksctl mount --block /dev/sd*
其中 * 是该设备的字母。我更喜欢最后一个,因为它会自动挂载到/media
文件夹。使用mount
您必须指定文件夹。此外,使用 mount 您必须知道文件系统类型,如 NTFS(windows)、ext4(linux)、FAT(许多 USB 驱动器)。
至于文件的实际列表,有很多方法
find /directory/where/device/mounted -type f
是一种递归方式,用于列出该设备上所有文件夹中的所有文件。ls /mount/folder
stat /mount/folder
dir
这与ls
答案2
词组在 UNIX 中,一切皆文件可以在这里应用:每个插入你计算机的物理驱动器,/dev
只要被系统识别,里面都会有一个或多个文件来表示。
为了能够读写,这些设备需要挂载在某个地方。要获取所有已挂载设备的列表,请使用命令mount
。以下是我的挂载表的摘录:
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
/dev/sdc1 on /media/sebastian/some-id type ext4 (rw,nosuid,nodev,uhelper=udisks2)
如果您的设备未在此处列出,则表示尚未安装。大多数文件管理器会在插入驱动器时自动安装驱动器,但如果没有,或者您没有使用文件管理器,则可以手动执行此操作。首先列出您使用 获得的分区lsblk
。这将提供如下信息:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 232.9G 0 disk
├─sda1 8:1 0 224.8G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 8.1G 0 part [SWAP]
sdc 8:32 1 3.8G 0 disk
└─sdc1 8:33 1 3.8G 0 part /media/sebastian/some-id
从这里我们可以看到我刚插入的 USB 驱动器被枚举为/dev/sdc
,并且它有一个分区,编号为 1。此分区可以在 找到/dev/sdc1
。正如您所注意到的,它已经安装,但我们假设它没有安装。以下是手动安装驱动器的步骤:
mkdir /mnt/somedir
将在里面创建一个名为somedir
(可随意更改名称)的目录/mnt
。在这里您将挂载驱动器。mount /dev/sdc1 /mnt/somedir
将尝试安装分区/dev/sdc1
(我的 USB 记忆棒的唯一分区)在/mnt/somedir
- 如果失败,您可能需要提供可选参数,因为 mount 非常聪明,但不能总是猜出要做什么。为此,最好查看 中提供的选项
man mount
。您可能需要的一个选项是-t <type>
指示分区格式,例如mount -t vfat /dev/sdc1 /mnt/somedir
。如果 mount 抱怨您没有必要的权限,请将自己添加到组plugdev
或以 root 身份执行 mount 命令sudo mount <...>
现在应该已挂载分区,因此再次运行mount
以查看新条目。现在您可以使用 跳转到已挂载的分区cd /mnt/somedir
。现在键入ls
以列出驱动器的内容。
要将文件从驱动器传输到计算机,反之亦然,请使用以下cp
命令:
cp <source> <destination>
例如
cp image1.png image2.png image3.png /home/username/Pictures
将把这三个文件复制到您的图片文件夹中。
要在使用后卸载设备,请使用以下umount
命令:
umount /dev/sdc1
或者
umount /mnt/somedir
您现在可以安全地删除挂载目录,但不必这样做。