从下载文件夹复制文件

从下载文件夹复制文件

尝试将文件从下载文件夹拖放到 Sandisk 闪存驱动器。当我拖放文件时,它总是跳回到下载文件夹。

答案1

也许您没有在外部驱动器上写入的权限,或者它是一个无法读取的文件系统。

要确定问题是否出在这里,请打开终端并输入

lsblk

然后按“enter”。您将获得类似以下输出的内容:

块设备列表

大小列可能会告诉您哪个设备是您的闪存驱动器(例如,图片中的 USB 驱动器有 15 GB)。在名称列中,sdx始终表示整个设备,sdx1将是设备的第一个分区。您需要写下的是闪存驱动器分区(可能是第一个也是唯一的分区)的挂载点,它将类似于/media/user/foo- 在我的屏幕截图中,您可以看到我的 USB 驱动器sdc1使用挂载点挂载在/media/...。如果未指定挂载点,则不会挂载闪存驱动器。我认为在 Ubuntu 中自动挂载是默认激活的,因此移除驱动器并重新连接应该可以解决问题。否则您需要手动挂载它。

现在通过输入以下命令更改为你的挂载点

cd /media/user/foo

(用户是您的登录用户的名称),现在您应该看到在输入时闪存驱动器上已经存在的所有文件夹

ls -al

这里最左边的列告诉你文件权限,它是这样的

`drwxrwxrwx` or `-r-x------`

d 表示该文件是一个目录,第一个 rwx 是用户权限,第二个 rwx 是组的权限,第三个 rwx 是其他所有人的权限。r = 读取,w = 写入,x = 执行。如果字母本身不是破折号 (-),则表示不授予特定权限。第三和第四列告诉您文件所属的用户和组。这应该是您的登录用户及其默认组。如果不是这种情况,并且文件的权限限制其他人写入(第三个三元组中没有 w),那么您就有问题了。

现在你有几种方法可以解决这个问题:

  1. 使用 sudo 复制文件:

    sudo cp /home/user/Downloads/filename /media/user/foo/

    这将授予您临时的 root 权限,允许您复制文件。如果您要复制整个目录,则需要使用以下方法递归复制它们

    sudo cp -R /home/user/Downloads/directory /media/user/foo/

    当提示输入密码时,请输入您的用户登录密码。

  2. 更改文件的所有者和组:你需要在文件系统中进入上一级

    cd ..

    然后使用以下命令更改挂载点本身的用户和组:

    sudo chown -R user /media/user/foo

    sudo chgrp -R group /media/user/foo

    -R 表示递归,它将修改挂载点内的每个文件和目录以及挂载点本身的用户和组。您的默认组与 ubuntu 默认安装中的用户同名,通过在groups终端中输入来验证第一个条目是否是您的默认组。实际上,您只需要第一行即可使其工作,带有组的第二行是可选的。

  3. 如果没有人被允许写入闪存驱动器(三个部分中都没有),则需要使用以下命令调整文件的权限

    sudo chmod u+w filename

    u+w 将授予用户 (u) 对文件的写访问权限 (+w),您可以使用相对路径名(相对于当前目录的路径)或根目录的绝对路径名来指定,例如 /media/user/foo/filename

如果这没有帮助,则可能是文件系统问题。您可以使用 gparted 检查闪存驱动器的文件系统类型。输入

`sudo gparted`

并选择您的设备(您从 lsblk 知道名称,它类似于“/dev/sdx”)。使用此工具时要小心,因为它可能会擦除整个磁盘!“文件系统”列将类似于 ntfs、ext4、fat 等。请在此处发布您的文件系统类型,以便我们进一步为您提供帮助。

如果您对整个过程有任何疑问,请随时询问:)

答案2

另一种方法

首先创建一个挂载 usb 的目录

sudo mkdir /media/external

进而

sudo mount -t vfat /dev/sdb1 /media/external -o uid=1000,gid=1000,utf8,dmask=027,fmask=137

有关详细信息,请参阅 然后尝试复制操作

cp -r $HOME/Downloads/* /media/external

相关内容