在文件夹中时,“。”和“ ..”是什么意思?


34

当我用ls -a文件夹查看隐藏文件有默认情况下这是什么两个文件的意义创建2个隐藏文件...

ls -a

产生

.  ..

我用他们很多时候我做一个ls -la,因为它会告诉我我在上我在目录中的权限和所有权和一个以上的目录。
马可Ceppi

我没有足够的代表在这里投票关闭,但是我在这个问题上打了个旗,因为这是一个可以在3秒钟内通过搜索Google回答的问题(并且因为最近有一个关于该问题的讨论,是容易对SO博客)。
zzzzBov 2011年

1
^ zzzzBov谢谢您西班牙语的慷慨解囊。
mr_eclair

Answers:


40

. 是当前文件夹。

.. 是当前文件夹上方的文件夹-包含当前文件夹的文件夹。

当某人想要从其主目录运行脚本时,有时会看到使用单个点。例如:./ install-app.sh。这意味着文件“ install-app.sh”在当前目录中。/home/username/directory/install-app.sh同样有效。同样,如果文件位于父目录中,则也可以执行../install.app。之所以这样,不仅是为了导航,而且还应该不可能仅仅通过在主目录中重命名文件来意外隐藏系统应用程序。


100%正确。可以将它们视为每个目录中的钩子。它们仅用于导航。您会发现这不仅是Linux标准,而且在Windows上也是如此。在Unix和Mac上可能也一样,但是我从未在它们的两个命令提示符中玩过。
Ctuchik 2011年

1
cd / ; cd ..:P
htorque 2011年

1
在FreeBSD上也是如此,因此我想在Mac上也是如此,因为Mac基于Darwin BSD。
Azendale 2011年

扭矩:也许您是一个宗教人士?:)
Jo-Erlend Schinstad 2011年

它在Mac OS X上运行(与其他Unix一样工作,尽管GUI隐藏了其中的一些)。Mac OS Classic没有它们。::用于先前的目录。没有:它们的路径是当前目录。否则,应使用完整路径(以磁盘名称开头),并以分隔各个组件:。例如:Macintosh HD:System Folder:Finder
derobert

4

这些是指向自身(。)和父(..)目录的硬链接。它们是在创建目录时创建的。绝对不能删除它们(不删除它们指向的目录)。

如果创建目录:

mkdir /tmp/foo

您会看到,实际上有2个到/ tmp / foo的硬链接:

drwxr-xr-x 2 michal michal 4096 2011-08-07 18:40 /tmp/foo
           ^---- two hardlinks

第一个是从/ tmp /目录指向/ tmp / foo,第二个是'。在/ tmp / foo /中指向自身。


2

另外,请注意,您可以使用ls -A(而不是ls -a)列出所有文件,包括隐藏文件,但不包括...目录。


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.