我知道什么是点文件或文件夹,但每个目录中都有一个特定的点名文件夹(名称只是一个点)。它们有什么用?
例如,这是我的“bin”文件夹的一部分。请看前两行。
drwxr-xr-x 2 root root 4.0K Jul 29 12:39 .
drwxr-xr-x 23 root root 4.0K Jul 29 12:37 ..
-rwxr-xr-x 1 root root 904K Mar 30 20:02 bash
-rwxr-xr-x 1 root root 30K Aug 3 2012 bunzip2
...
答案1
每个目录包含一个.
和一个..
条目。
.
表示目录本身。它被称为当前的目录。
..
表示目录的父目录,即包含它的目录。
有一个目录不包含在任何其他目录中:/
。因此/
是特殊的——与所有其他目录一样,它包含一个..
条目,但其..
条目是其本身。因此对于/
,且仅对于/
,..
和.
是等效的。
这些目录条目可用于多种用途。例如,您可以使用命令 将目录更改为当前所在目录的父目录cd ..
。
您可能在运行程序或脚本的上下文中看到过这种.
情况。在 Unix 风格的 shell 中,当您按名称运行命令时,shell 不会自动尝试在当前目录中按名称运行程序。(这让一些来自 Windows 的用户感到惊讶,因为传统上 Windows 会发生这种情况。)这样做的主要原因是安全性——如果有人在他们的目录中创建了一个与某个系统管理工具同名的程序,而您在他们的目录中运行该工具,那么他们可能只是诱骗您运行他们的程序。
因此,要运行不属于你的程序PATH
,则必须使用包含 的某个名称来调用它/
。要运行当前目录中的程序,可以使用./program
。(您不能使用,因为这是绝对路径,表示“在根目录中/program
调用的文件, 。”)program
/
答案2
单点代表当前目录。双点代表父目录。输入“cd ..”将带您进入父目录。有关更多信息,请参阅本页底部:http://www.basicconfig.com/linux/linux_cd_command_tutorial
答案3
.
表示当前目录。
..
表示父目录。
因此,当您输入 时cd ..
,您将向上移动一级。当您输入 时cp /etc/resolv.conf .
,您将复制/etc/resolv.conf
当前目录中的文件。