AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1072377
Accepted
stackinator
stackinator
Asked: 2018-09-06 05:32:39 +0800 CST2018-09-06 05:32:39 +0800 CST 2018-09-06 05:32:39 +0800 CST

终端命令中文件名开头的句点 (.) 是什么意思?

  • 772

in ,在inchmod -R 421 .gimp之前的句号是什么意思?这类似于通配符吗?ggimp*

command-line hidden-files
  • 5 5 个回答
  • 20527 Views

5 个回答

  • Voted
  1. Best Answer
    Videonauth
    2018-09-06T05:36:27+08:002018-09-06T05:36:27+08:00

    这种情况下的点是文件名的一部分,在 Linux/Unix 上下文中意味着文件或目录是隐藏的,你无法在文件资源管理器中看到它(Nautilus,这是香草 Ubuntu 上的默认设置),除非你按CTRL+ H。

    而且,如果您只在终端中使用,除非您使用or标志(即or或or )ls,否则您也不会看到它。-a-Als -als -Als --allls --almost-all

    但是,点 ( .) 在不同的上下文中具有不同的含义:

    • 例如,在路径 ( ./file) 中,它描述了您所在的当前目录,而在父目录中../file引用。file
    • 甚至还有一个命令.可以获取(运行) bash 脚本文件。因此. ./file(注意间距)将file获取当前目录中命名的脚本。
    • 在 REGEX 上下文中,点表示“任何字符”。
    • 21
  2. guiverc
    2018-09-06T05:37:08+08:002018-09-06T05:37:08+08:00

    .gimp在你的例子中是一个文件名,“。” 是第一个字符。

    它的意义是正常的ls(ls=list files)不会显示带有“.”的文件。作为第一个字符,它仅使用 ls -a 列出(或列出文件 --all)

    • 20
  3. Sergiy Kolodyazhnyy
    2018-09-10T19:09:10+08:002018-09-10T19:09:10+08:00

    就 Linux 本身而言,文件或目录名称中的前导点没有任何特殊意义。但是,某些实用程序(例如lsNautilus 文件管理器)将此类文件名视为“隐藏”,即它们会在输出中忽略它们,并且仅在您提供特定选项时才会显示它们。

    实际上,这源于技术上可以被视为错误的东西。Rob Pike是最初在 UNIX 团队工作的人之一,他讲述了(来源):

    很久以前,随着 Unix 文件系统的设计正在制定,条目 . 和 .. 出现,使导航更容易。我不确定,但我相信 .. 在版本 2 重写期间进入,当时文件系统变得分层(早期它具有非常不同的结构)。然而,当键入 ls 时,这些文件就会出现,因此 Ken 或 Dennis 都在程序中添加了一个简单的测试。那时它在汇编程序中,但有问题的代码相当于这样的东西:

        if (name[0] == '.') continue;
    

    这个声明比它应该的要短一点,即

       if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;
    

    但是,嘿,这很容易。

    结果有两件事。

    首先,开创了一个不好的先例。许多其他懒惰的程序员通过同样的简化引入了错误。以句点开头的实际文件在应该计算时通常会被跳过。

    其次,更糟糕的是,创建了“隐藏”或“点”文件的想法。结果,更多懒惰的程序员开始将文件放到每个人的主目录中。我没有在我用来打字的机器上安装那么多东西,但是我的主目录有大约一百个点文件,我什至不知道它们中的大多数是什么,或者它们是否仍然需要. 通过我的主目录进行的每个文件名评估都会被这种积累的污泥减慢。

    我很确定隐藏文件的概念是一个意想不到的结果。这当然是一个错误。

    如今,尽管它们的内容根本没有隐藏,但这种称它们为“隐藏”的习惯已经成为一种惯例。真正的隐藏或匿名文件/匿名 inode将通过打开文件并保持其文件描述符打开,但将其与目录取消链接来实现,这使得数据本身只能由持有该文件的程序访问,并且它的子进程(最好在取消链接文件后分叉),因为子进程继承文件描述符。事实上,这就是 bash 实现 here-docs 的方式。

    完全不同的故事是当文件名本身是一个点.或..时,它们背后实际上有一些历史,我建议你阅读为什么 ls 命令中的当前目录被识别为链接到它自己?

    • 7
  4. Lightness Races in Orbit
    2018-09-06T09:35:38+08:002018-09-06T09:35:38+08:00

    没有什么。它是文件名的一部分。

    您似乎有一个名为.gimp.

    时期。(哈哈)

    关于它的任何其他讨论都属于关于人们为什么选择某些文件名的问题。

    • 5
  5. allo
    2018-09-07T07:18:59+08:002018-09-07T07:18:59+08:00

    文件名开头的点将文件隐藏在常用文件管理器和常用 shell 程序中。

    原因是历史性的,当ls隐藏特殊目录.并..隐藏以句点开头的所有内容时。然后人们使用以句点开头的文件名来隐藏文件,因此它们仅以 列出ls -a,例如使配置文件不可见,这些文件通常在 ls 输出中不需要。

    所以点 inchmod -R 421 .gimp不是命令的修饰符,而是实际目录名的一部分。

    • 3

相关问题

  • 如何从命令行仅安装安全更新?关于如何管理更新的一些提示

  • 如何从命令行刻录双层 dvd iso

  • 如何从命令行判断机器是否需要重新启动?

  • 文件权限如何工作?文件权限用户和组

  • 如何在 Vim 中启用全彩支持?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve