尝试在Nautilus中删除文件时无法将文件移至垃圾桶警告


16

我正在尝试删除Nautilus中的文件,每次尝试删除其中一个文件时,它总是会显示以下消息:

无法将文件移到回收站,是否要立即删除?

然后它给了我几个问题。我想要的是,当我按Delete键盘时,它会自动将其发送到垃圾桶。不要每次都问我。

该问题与NTFS分区,外部驱动器有关,但也包括Linux文件系统。

鹦鹉螺蜜蜂无法移入垃圾箱的原因是什么?

在此处输入图片说明


您可以提供文件的完整(绝对)路径
aneeshep

在这种情况下是/ var / www。它已经是它的所有者,权限很好。但是也有外部单元(例如硬盘驱动器和笔式驱动器)具有相同的问题。
路易斯·阿尔瓦拉多

Answers:


10

(关于可移动媒体,不是用户的情况,因为这是通过更新解决的错误)

发生这种现象的原因是,在安装驱动器时,您不被视为所有者,因此无法创建垃圾箱。没有分配uidgid,并且由于无法在驱动器中创建垃圾箱文件夹,因此只能选择自动删除文件。

在这种情况下,您有2个选择:将文件切入Linux文件系统并在那里删除它们(这与按Delete键删除文件的目的不符),或确保在安装驱动器时分配了正确的权限。

使用这些行为自动安装的驱动器创建新规则,为此使用您喜欢的文本编辑器

gksudo gedit /etc/udev/rules.d/10-my-media-automount.rules

# vim:enc=utf-8:nu:ai:si:et:ts=4:sw=4:ft=udevrules:
#
# /etc/udev/rules.d/10-my-media-automount.rules

# start at sdb to ignore the system hard drive
KERNEL!="sd[b-z]*", GOTO="my_media_automount_end"
ACTION=="add", PROGRAM!="/sbin/blkid %N", GOTO="my_media_automount_end"

# import some useful filesystem info as variables
IMPORT{program}="/sbin/blkid -o udev -p %N"

# get the label if present, otherwise assign one based on device/partition
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"

# create the dir in /media and symlink it to /mnt
ACTION=="add", RUN+="/bin/mkdir -p '/media/%E{dir_name}'"

# global mount options
ACTION=="add", ENV{mount_options}="relatime"
# filesystem-specific mount options (777/666 dir/file perms for ntfs/vfat) 
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},gid=46,dmask=000,fmask=111,utf8"

# automount ntfs filesystems using ntfs-3g driver
ACTION=="add", ENV{ID_FS_TYPE}=="ntfs", RUN+="/bin/mount -t ntfs-3g -o %E{mount_options} /dev/%k '/media/%E{dir_name}'"
# automount all other filesystems
ACTION=="add", ENV{ID_FS_TYPE}!="ntfs", RUN+="/bin/mount -t auto -o %E{mount_options} /dev/%k '/media/%E{dir_name}'"

# clean up after device removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l '/media/%E{dir_name}'", RUN+="/bin/rmdir '/media/%E{dir_name}'"

# exit
LABEL="my_media_automount_end"

重新启动计算机,您的ntfs驱动器将使用此自定义规则进行挂载,要更改已挂载驱动器的权限,请查看以下行$env{mount_options},gid=46,dmask=000,fmask=111,utf8",该选项gid=46应使用组特权挂载ntfs驱动器(46(plugdev)允许用户挂载的组Ubuntu中的驱动器),fmask以及在驱动器dmask上写入,创建,删除文件/文件夹的设置。

根据需要进行更改。您将需要根据每种类型自己整理其他文件系统,但这应该可以开始。

规则来源udev


这对我也有用吗?我有一个略有不同的环境:仅使用Linux,并且我已将NFS挂载在home上,其中删除工作非常好,并且还存在垃圾箱,但是我将目录符号链接repos到本地文件系统/local/home/me/repos(速度更快)。仅在此目录和子目录内删除无效。目录/local/home由根目录755拥有,但我的目录/local/home/me/repos由模式700拥有。–
math

问题:此行的值:能否$env{mount_options},gid=46,dmask=000,fmask=111,utf8"也写在的<options>列内fstab?是同一件事吗?
Nearoo

8

对于用户无法删除不可移动分区中存储的文件的情况(Ubuntu 14.04)

正如Bruno Pereira所说,之所以会发生这种现象,是因为用户在分区的安装点(在OP情况下为/ var)没有写权限,因此无法创建垃圾箱的目录。

在这种情况下,OP无法移至存储在/ var分区中的垃圾文件。要解决此问题:

$ cd /var
$ sudo mkdir .Trash-1000
$ chown user:group .Trash-1000

您将必须更换:

  • 1000 通过您的用户标识符(请在文件/ etc / passwd中查看登录名后面的数字)
  • user:group 分别按您的登录名和组

4

在16.04,我遇到了同样的问题。解决方法是打开“磁盘”,单击NTFS分区->(附加分区选项)下方的小齿轮图标->“编辑安装选项”,然后在该行中添加“ uid = 1000”(无引号,用逗号分隔)在安装点上方(参见图片)。通过磁盘实用程序修改fstab挂载选项

UID应该从1000作为终端返回的“ID”命令,如果你是不是原来的用户,如提及被设置为另一个号码在这里


0

我以前在/ etc / fstab中添加一行以挂载ntfs分区时遇到此问题。如果我在nautilus中“手动”安装分区,则该分区不存在。

Ubuntu的文档说明,你应该使用udisks,这就是鹦鹉螺使用安装盘。

自动挂载分区的步骤摘要:

  1. 先决条件:安装分区并使用mount命令查找其名称(例如/ dev / sdb1)。

  2. 获取分区的uuid。uuid出现->在以下命令中:

    ls -al /dev/disk/by-uuid/

  3. 安装命令为:

    /usr/bin/udisks --mount /dev/disk/by-uuid/<the uuid you found previously>

  4. 在启动应用程序中添加此命令


1
这是不是让你在NTFS分区上执行文件
安瓦尔

-1

对于喜欢GUI的用户,以下是如何以图形方式解决此问题的方法:

  1. sudo apt-get install nemo通过输入sudo nemo终端,以提升的权限打开nemo文件编辑器(要安装)。[这可能也可以在鹦鹉螺中使用,但我只在nemo中进行过测试]。
  2. 右键单击存储文件的已安装设备,然后转到“属性”。
  3. 转到“权限”标签,对于“所有者”,单击下拉菜单并选择您的用户名。关闭所有内容,然后返回正常的文件管理器。
  4. 将您设置为设备的所有者后,它现在应该在该设备上为您创建垃圾桶,并允许您按Delete键将文件自动移至垃圾桶。

使用sudo运行GUI程序通常不是一个好主意。许多事情都会出错-例如,nemo第一次运行时,它将写入配置文件并创建所需的目录。这些将归所有者拥有root,而用户不可写。而且要花一些时间才能发现问题-该sudo命令可能很久以来就被遗忘了。例如,我认为nemo~user/.local/share/nemo/scripts/在首次运行时创建目录。
Volker Siegel

有趣。...–
加布里埃尔·斯台普斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.