跳转到内容

为应对本站因各种原因无法访问,建议用户安装 arch-wiki-docs-zh-cnCNRepo 或者 arch-wiki-docs-zh-twCNRepo 离线文档包备用,也可尝试使用经由Cloudflare CDN的替代版本aw.lilydjwg.me。

GNOME/文件

来自 Arch Linux 中文维基

文件是GNOME的默认文件管理器。文件的目的是提供一种管理文件和应用的简化方法。可扩展以通过SFTP、WebDAV、NFS等不同协议实现网络文件访问。

注意:在3.6版本之前,文件叫做Nautilus,后来则对每种语言做了新的描述性名称。Nautilus这个名字仍然用在许多地方,如可执行文件名、软件包名、桌面条目和GSettings Schema等。


安装 nautilus包 软件包,此软件包是 gnome包组 组的一部分。见文件管理器功能#额外功能。

注意:“文件”不依赖 gnome-shell包,只需要 gnome-desktop包。

网络共享与虚拟文件系统

[编辑 | 编辑源代码]

通过安装 gvfs包 及各种 gvfs-* 软件包,可以添加对多种基于网络的文件系统(例如 SMB、NFS、WebDAV、Nextcloud)以及部分移动设备(Android MTP、Apple AFC)的支持。

有关更多信息及其他受支持的虚拟文件系统,请参见 文件管理器功能。

其他示例

[编辑 | 编辑源代码]
注意:用 Python 编写的扩展需要 Nautilus 扩展 API 的 Python 绑定(nautilus-python包 包)。
  • Actions For Nautilus — 允许在文件选择右键菜单中添加任意操作的扩展。(使用 Python 编写)
https://github.com/bassmanitram/actions-for-nautilus || actions-for-nautilus-gitAUR
  • Folder Color — 用于选择文件夹颜色的文件浏览器扩展。(使用 Python 编写)
https://github.com/costales/folder-color || folder-color-nautilusAUR
提示:此扩展仅适用于包含额外彩色图标的图标主题,例如:
numix-icon-theme-gitAUR、vibrancy-colorsAUR、humanity-icon-themeAUR、mint-x-iconsAUR。
  • Nautilus Admin — 在菜单中添加“以管理员身份打开”或“以管理员身份编辑”选项。(使用 Python 编写)
https://github.com/MacTavishAO/nautilus-admin-gtk4 || nautilus-admin-gtk4AUR
  • Nautilus Annotations — 为文件和目录添加注释。(使用 C 编写)
https://gitlab.gnome.org/madmurphy/nautilus-annotations/ || nautilus-annotationsAUR
  • Nautilus Bluetooth — 在菜单中添加“通过蓝牙发送”选项。(使用 C 编写)
https://gitlab.gnome.org/madmurphy/nautilus-bluetooth/ || nautilus-bluetoothAUR
  • Nautilus Checksums — 在 Nautilus 的属性窗口中添加校验和信息。(使用 C 编写)
https://gitlab.gnome.org/madmurphy/nautilus-checksums/ || nautilus-checksumsAUR
  • Nautilus Compare — Nautilus 的右键菜单文件差异比较扩展。它在 Nautilus 右键菜单中提供“比较”、“与 ~/foo/bar 比较”和“稍后比较”选项,默认使用 meld 进行比较。(使用 Python 编写)
https://launchpad.net/nautilus-compare || nautilus-compareAUR
  • Nautilus Hide — 在菜单中添加“隐藏”/“取消隐藏”选项。(使用 C 编写)
https://gitlab.gnome.org/madmurphy/nautilus-hide/ || nautilus-hideAUR
  • Nautilus Image Converter — 调整图像大小或旋转图像。(使用 C 编写)
https://gitlab.gnome.org/coreyberla/nautilus-image-converter || nautilus-image-converter包
  • Nautilus Launch — 允许通过右键菜单运行可执行文件和启动器的 Nautilus 扩展。(使用 C 编写)
https://gitlab.gnome.org/madmurphy/nautilus-launch || nautilus-launchAUR
  • Nautilus Open Any Terminal — 在右键菜单中添加使用其他终端模拟器打开的选项的 Nautilus 扩展。
https://github.com/Stunkymonkey/nautilus-open-any-terminal || nautilus-open-any-terminalAUR
  • Nautilus Metadata Editor — 为以下 MIME 类型提供简单元数据编辑器的 Nautilus 扩展:audio/x-mp3、audio/x-flac、audio/x-vorbis+ogg、audio/x-speex+ogg、audio/x-musepack、audio/x-wavpack、audio/x-tta、audio/x-aiff、audio/m4a、video/mp4、video/x-ms-asf。(使用 C 和 Vala 编写)
https://gitlab.com/nvlgit/nautilus-metadata-editor-extension || nautilus-metadata-editorAUR
  • Nautilus Share — 通过 Samba 共享文件夹的 Nautilus 扩展。(使用 C 编写)
https://gitlab.gnome.org/coreyberla/nautilus-share || nautilus-share包
  • Seahorse Nautilus — 为 GNOME 文件管理器提供 PGP 加密和签名功能。(使用 C 编写)
https://gitlab.gnome.org/GNOME/seahorse-nautilus || seahorse-nautilusAUR
警告:seahorse-nautilus 的上游代码仓库已归档,并且由于存在尚未修复的错误,上游明确警告不要使用该扩展。
  • Sushi — Nautilus 的快速文件预览工具,属于 gnome包组 软件包组。
https://gitlab.gnome.org/GNOME/sushi || sushi包


提示:若要编写新的扩展,辅助脚本 nextgenAUR 可以让您轻松地设置 GNOME文件的新扩展项目(默认使用C语言)。

有些应用自带与GNOME/文件集成的功能。

  • Eiciel — GNOME file ACL editor — The application includes an "Eiciel Nautilus" extension that adds graphical ACL editor into the file properties window (written in C++)
https://rofi.roger-ferrer.org/eiciel/ || eicielAUR
  • File Roller — An application for browsing archives — The application includes a "Nautilus FileRoller" extension (written in C)
https://wiki.gnome.org/Apps/FileRoller || file-roller包
  • GNOME Terminal — The GNOME Terminal Emulator — The application includes a "Terminal Nautilus" extension (written in C)
https://wiki.gnome.org/Apps/Terminal || gnome-terminal包
  • Tilix — A tiling terminal emulator for GNU/Linux using GTK+ 3 — The application includes an extension for Nautilus which adds an "Open in Tilix" option to the context menu (written in Python)
https://github.com/gnunn1/tilix || tilixAUR
注意:“Open in Tilix”扩展将 nautilus-python包 软件包标记为可选依赖,但必须安装才能使用。

依赖非自由软件的集成

[编辑 | 编辑源代码]

一些 GNOME/文件的集成功能虽然免费/自由,但可能依赖于非自由软件,例如:

  • Code Nautilus — Nautilus extension to open files and directories in Visual Studio Code (written in Python)
https://github.com/cra0zy/code-nautilus || code-nautilus-gitAUR
  • JetBrains Nautilus — Nautilus extension to open files and directories in JetBrains Toolbox installed products (written in Python)
https://github.com/encounter/jetbrains-nautilus || jetbrains-nautilus-gitAUR
  • Nautilus Code — Nautilus extension which adds right-click menu items to open current folder in Visual Studio Code or GNOME Builder (written in C)
https://github.com/realmazharhussain/nautilus-code || nautilus-codeAUR

文件很容易进行图形化配置,但并非所有选项都能在首选项中找到。更多选项可以使用dconf-editor在org.gnome.nautilus中找到。

注意:如果在GNOME桌面环境之外使用文件,则必须确保/usr/lib/gsd-xsettings正在运行,否则dconf设置不会在文件中应用。

改变默认项目视图

[编辑 | 编辑源代码]

设置default-folder-viewer变量可以改变项目的默认视图,如设为列表视图:

$ gsettings set org.gnome.nautilus.preferences default-folder-viewer 'list-view'

按类型排序

[编辑 | 编辑源代码]

若要默认用类型排序所有文件夹中的文件:

$ gsettings set org.gnome.nautilus.preferences default-sort-order 'type'

始终显示文本文件路径

[编辑 | 编辑源代码]

文件工具栏默认显示用于路径导航的按钮栏界面。若要用键盘输入路径,则需按Ctrl+l显示文本路径栏。

若要始终以文本路径栏显示,可以使用以下gsettings命令:

$ gsettings set org.gnome.nautilus.preferences always-use-location-entry true
注意:改变此设置后将无法再显示按钮栏,只有把值设为false时才能同时使用两种路径栏。

提示与技巧

[编辑 | 编辑源代码]

缩略图

[编辑 | 编辑源代码]

见文件管理器功能#缩略图预览。

注意:在linux-hardened包中,缩略图会生成失败(所有缩略图都在~/.cache/thumbnails/fail/目录中),这是由于非特权用户的命名空间因为安全原因在该内核上默认禁用。Nautilus使用bwrap (由bubblewrap包提供)对缩略图进行沙盒处理。尽管存在安全隐患,你仍然可以选择启用非特权用户命名空间。有关更多信息,请参见 FS#63316。

有时会无法显示视频缩略图。若要解决此问题(正如No video thumbnails on nautilus),必须安装ffmpegthumbnailer包、gst-libav包、gst-plugins-ugly包并移除~/.cache/thumbnails/fail/里的内容。

用右键菜单创建新文档

[编辑 | 编辑源代码]

若要使用此选项,请在您的主文件夹中创建一个~/Templates/(模板)文件夹,并通过终端touch ~/Templates/new或任何文件管理器在该文件夹中放置一个空文件,然后重新启动文件。

在非英语系统中,模板目录的名称可能不同。可以用xdg-user-dir TEMPLATES找到实际目录。

可以在~/.config/user-dirs.dirs文件中配置模板目录。

XDG_TEMPLATES_DIR="$HOME/some/path"

隐藏文件

[编辑 | 编辑源代码]

GNOME文件和大部分文件管理器一样,默认隐藏名称以“.”开头的文件。

GNOME 文件管理器还会隐藏名称列在同一目录下的 .hidden 文件中的文件(每行一个文件名)。可以使用 nautilus-hideAUR 扩展,方便在此类 .hidden 文件中添加或删除条目。

在Tilix中打开当前路径

[编辑 | 编辑源代码]

如果你使用 tilixAUR 终端,可以通过安装其可选依赖 nautilus-python包,在 GNOME 文件管理器的右键菜单中添加“在 Tilix 中打开”选项。

将文件夹加入书签

[编辑 | 编辑源代码]

若要将文件夹添加到你的书签中,只需在Nautilus中打开该文件夹,并按Ctrl+d。请注意,书签列表与其它基于GNOME的图形化文件管理器(如Nemo)共享,因此在其中增减的文件夹也会影响到其它文件管理器中的书签。

自定义脚本

[编辑 | 编辑源代码]

位于~/.local/share/nautilus/scripts的脚本可以运行于文件的右键关联菜单。

The context menu can also be organized into subfolders, e.g. ~/.local/share/nautilus/scripts/images and ~/.local/share/nautilus/scripts/music.

Scripts have access to the following environment variables:

NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
NAUTILUS_SCRIPT_SELECTED_URIS
NAUTILUS_SCRIPT_CURRENT_URI
NAUTILUS_SCRIPT_WINDOW_GEOMETRY

一些脚本示例:

~/.local/share/nautilus/scripts/open-terminal-here
#!/bin/sh
gnome-terminal
~/.local/share/nautilus/scripts/remove-extension
#!/bin/sh
echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read -r filename; do
    mv -n "$filename" "${filename%.*}"
done
注意:Make sure the scripts are marked as executable. You may have to restart nautilus with nautilus -q for them to show up.

Keybinds to execute scripts can be assigned in the ~/.config/nautilus/scripts-accels file:

; Example Keybinds
; Modifiers: <Control> <Alt> <Shift>
F4 open-terminal-here
<Alt>x remove-extension
注意:You cannot overwrite any pre-existing nautilus keybinds.

疑难解答

[编辑 | 编辑源代码]

文件已不再是默认文件管理器

[编辑 | 编辑源代码]

这可能是因为重置了路径的文件关联,安装anjutaAUR或者visual-studio-code-binAUR往往会造成这种情况。

若要解决此问题,打开文件,右键点击一个文件夹,然后选择使用其它程序打开 > 文件 > 选择,就会把路径的关联设回文件。

若没有解决此问题,见文件管理器功能#未在文件管理器中打开目录。

每次复制操作后都会卡几秒

[编辑 | 编辑源代码]

如果系统中安装了kdeconnect包,问题可能来自其文件共享模块,停用文件共享即可。

共享文件夹的 Windows 计算机未显示在网络视图中

[编辑 | 编辑源代码]

要启用 WSD 支持,请安装 gvfs-wsdd包,使 GNOME 文件管理器能够在网络视图中发现较新版本的 Windows 计算机。

挂载选项中缺少 WebDAV

[编辑 | 编辑源代码]

安装 gvfs-dnssd包 并重新启动 Nautilus。

未安装 gnome-console 时“作为程序运行”无法正常工作

[编辑 | 编辑源代码]

右键菜单中的“作为程序运行”选项被硬编码为使用 gnome-console包。如果你使用其他终端模拟器,且系统中未安装默认的 GNOME 终端,则该菜单选项不会执行任何操作。

由于该选项只是直接执行 /usr/bin/kgx(gnome-console包 的可执行文件),因此可以创建一个名为 kgx 的脚本(如果你的终端支持相同的命令行参数,也可以创建符号链接),并将其放置在 /usr/bin/ 中,从而让“作为程序运行”右键菜单选项使用你指定的终端。

以下示例展示如何使用 wezterm-gitAUR 作为“作为程序运行”功能的终端:

/usr/bin/kgx
#!/bin/sh

wezterm -e $@
注意:子程序执行结束后,gnome-console包 会保持窗口打开并显示输出,直到用户手动关闭。而其他终端模拟器(例如 wezterm)会在程序退出后立即关闭窗口。可以在上述脚本末尾添加类似 read -n 1 -s -r -p "Press any key to continue" 的命令,使终端等待用户按下任意键后再关闭。

在任意终端中打开目录

[编辑 | 编辑源代码]

可以通过右键菜单中的“打开方式...”选项,在终端模拟器中打开目录。但终端对应的 XDG 桌面条目必须包含适当的 Exec 和 MimeType 字段值。

以下示例展示如何为 Alacritty 终端模拟器创建额外的桌面条目,使其能够被“打开方式...”菜单识别。

~/.local/share/applications/alacritty-directory.desktop
[Desktop Entry]
Type=Application

# `working-directory` 参数需要提供一个值
Exec=alacritty --working-directory %f
# MimeType 包含特殊类型 `inode/directory;`
MimeType=inode/directory;

Icon=Alacritty
Terminal=false
Categories=System;TerminalEmulator;
Name=Open in Alacritty
GenericName=Terminal
StartupNotify=true
StartupWMClass=Alacritty

运行 update-desktop-database ~/.local/share/applications/ 以应用更改。

如果终端应用程序意外成为默认文件管理器,可以使用 xdg-mime default org.gnome.Nautilus.desktop inode/directory 命令修复。

请检查你所使用的终端应用程序的命令行参数和桌面条目文件,并据此调整上述示例。