更改目录。使用 “ cd ..” 返回上一级目录。
一个点 '.' 代表当前目录,而两个点 '..' 代表父目录。
“ cd -” 将返回到上一个目录(有点像“撤销”)。
您也可以使用 cd 绝对路径 或 cd 相对路径(见下文)
“绝对路径”很容易从开头的正斜杠 / 识别出来。/ 表示您从顶层目录开始并向下继续。
例如,要到达 /boot/grub ,您需要输入
cd /boot/grub |
这是一个绝对路径,因为您从层次结构的顶部开始,然后从那里向下走(当您键入命令时,您在文件系统中的位置无关紧要)。
“相对路径”没有前导斜杠。当您从顶层目录结构以下的目录开始时,请使用相对路径。这取决于您在文件系统中的位置。
例如 ,如果您在 root 的主目录中,并且想要到达 /root/music,则输入
cd music |
请注意,在上面的 cd 命令中没有使用 /。使用 / 将使其成为绝对路径,从层次结构的顶部向下工作。
列出文件和目录。键入 “ls” 将列出文件和目录,但不会列出以句点 “.” 开头的隐藏文件或目录。
示例选项
ls -l --- 长格式,这将列出权限、文件大小、修改日期、所有权。
ls -a --- 这表示 “显示所有”,这将显示隐藏文件,默认情况下,任何以 ‘.’ 开头的文件或目录都不会显示。
ls -d --- 列出目录条目而不是内容(见下例)
ls -F --- 将符号附加到特定文件,例如 *(星号)表示可执行文件。
ls -S --- 按大小降序对命令的输出进行排序。
ls -R --- (递归)列出当前目录以及下方目录中的所有内容。
命令语法,可以是
ls -options |
这只是简单地列出当前目录中的所有内容,不需要选项(例如 -l、-a 等选项)。
ls -options string |
这将使用特定字符串列出文件。该字符串可以包含标准通配符以列出多个文件,要了解有关标准通配符的更多信息,请阅读 第 20.4.1 节
您可以使用 ls -d 显示与精确字符串匹配的目录,或使用标准通配符。键入 “ ls -d */” 以列出当前目录的所有子目录。根据您的别名设置(参见 第 4 章),您可能只需键入 lsd 即可等同于 ls -d */。
ls -d 的示例
ls -d */ |
列出当前目录的所有子目录。
ls -d string* |
列出以 “string” 开头的目录。
ls -d /usr/*/*/doc |
列出 /usr/ 目录下方两级并且有一个名为 “doc” 的目录的所有目录,这个技巧有时会非常方便。
![]() | 您也可以使用 |
---|---|
根据您的别名(参见 第 4 章)设置方式,您也可以使用 l、la(列出所有)和 ll(长列表)来执行上述命令 |
打印工作目录。打印用户当前所在目录的绝对(完整)路径。
命令语法
pwd |
这将告诉您您所在目录的完整路径,例如,如果您当前在该目录中,它可能会输出 “/usr/local/bin”。
输出一个 ASCII 文本树/图形,从给定目录(默认为当前目录)开始。此命令递归地列出所有文件和所有目录。
换句话说,它将列出当前目录下方目录中的文件,以及当前目录中的所有文件。
tree 有大量选项,请参阅手册页了解详细信息。
命令语法
tree |
或
tree -option(s) /optional/directory/to/list |
find 是一个在文件系统中查找文件的工具。find 有大量选项,可用于自定义搜索(请参阅手册/信息页)。
请注意,find 可以使用标准通配符,第 20.4.1 节,并且可以与正则表达式一起使用,第 20.4.2 节。
基本示例
find / -name file |
这将查找名为 “file” 的文件,并从根目录开始(它将搜索所有目录,包括已挂载的文件系统)。
`-name' 选项区分大小写,您可以使用 `-iname' 选项来查找不区分大小写的内容。
使用 '-regex' 和 '-iregex' 根据正则表达式查找内容(分别区分大小写或不区分大小写)。
'-exec' 选项是更高级的 find 操作之一。它对找到的文件执行命令(例如移动或删除它或任何其他操作...)。
要使用 -exec 选项:使用 find 查找内容,然后在末尾添加 -exec 选项,然后
command_to_be_executed |
请参阅下文,了解使用此命令的示例。
find / -name '*.doc' -exec cp '{}' /tmp/ ';' |
上面的命令将查找扩展名为 ‘.doc’ 的任何文件,并将它们复制到您的 /tmp 目录,显然这个命令非常无用,这只是 find 可以做什么的一个示例。请注意,引号在那里是为了阻止 bash 尝试将其他字符解释为其他内容。
使用 find 排除特定文件夹可能非常令人困惑,但如果您想搜索主磁盘(而不搜索每个挂载的文件系统),则可能是必要的。使用 -path 选项排除特定文件夹(请注意,末尾不能有 '/'(正斜杠)),并使用 -prune 选项排除子目录。下面是一个例子
find / -path '/mnt/win_c' -prune -o -name "string" -print |
此示例将搜索您的整个目录树(在其下挂载的所有内容),排除 /mnt/win_c 和 /mnt/win_c 下的所有子目录。使用 -path 选项时,可以使用通配符。
请注意,如果您愿意,可以添加更多 -path '/directory' 语句。
find 有许多不同的选项,请参阅手册(和信息)页了解更多详细信息。
slocate 输出系统上与模式匹配的所有文件的列表,并给出它们的完整路径名(它不必是完全匹配,任何包含该词的内容都会显示)。
![]() | 替换 locate |
---|---|
安全定位是 locate 的替代品,两者都具有相同的语法。在大多数发行版上,locate 是 slocate 的别名。 |
命令语法
slocate string |
![]() | 除非 |
---|---|
您需要运行 updatedb(作为 root 用户)或 slocate -u (作为 root 用户)才能使 slocate 工作。 |
whereis 定位特定程序的二进制文件、源代码和手册页,它仅使用精确匹配,如果您只知道名称的一部分,请使用 slocate。
命令语法
whereis program_name |
与 whereis 几乎相同,只是它只查找可执行文件(物理程序)。它只在用户的 shell 的 PATH(环境变量)中查找。
使用 -a 选项列出路径中特定 program_name 的所有出现次数(因此,如果存在多个,您可以查看它)。
命令语法
which program_name |