10分钟Linux-目录管理命令

01

我在那儿?pwd命令

在Bash shell中可以使用pwd(print working directory)命令显示当前工作目录,这样方便选择使用绝对路径还是相对路径准确的切换目录。

命令语法

pwd

举个例子

用户andy希望确定他现在所处的正确目录,应该使用pwd。

[andy@jinlong web]$ pwd

/home/andy/web

02

建立目录:mkdir

要将文件组织在目录里,必须先建立你需要的目录。在Linux系统中建立新目录的命令是mkdir(make directory)。

命令语法

mkdir [OPTIONS]

·常用选项

-p, --parents 此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。

举个例子

在使用mkdir创建目录的过程中,如果没有directory(目录)存在,那么就建立目录,如果已经存在一个或者多个目录,会产生错误信息,但还会继续建立尚未存在的新的目录。

用户andy会这样建立子目录~/public_html:

$ mkdir public_html

$ ls

public_html web

用户andy然后可以为public_html建立子目录:

$ ls public_html

$ mkdir public_html/photo

$ ls public_html

photo

注意:在默认状态下,如果父目录不存在,mkdir命令不能为其建立子目录:

$ ls work

ls: cannot access work: No such file or directory

$ mkdir work/images

mkdir: cannot create directory `work/images': No such file or directory

如果用户andy使用mkdir –p(parent)命令,他可以一次建立整个目录树:

$ mkdir -p work/images

$ mkdir -p work/logos

$ mkdir -p work/photo

$ ls work

images logos photo

03

列出目录内容:ls

使用ls(ls是list的缩写)命令列出目录中的内容。

命令语法

ls [OPTIONS] 目录名

· 常用选项:

–a列出所有文件,包括隐藏文件

–l详细列出目录下文件的权限、所有者文件大小等详细信息,可以简写为“ll”

–F列出目录下文件名及其目录类型

-t依照最后修改文件时间列出文件名

–R列出当前目录和其子目录的文件名

–color=never不以颜色方式显示

–color=always均以颜色方式显示

–color=auto系统自动判断

举个例子

用户andy想列出目录/home/andy/work的内容:

$ ls /home/andy/work

images logos photo

在没有参数(即不指定目录)的情况下调用ls命令时,该命令列出shell当前工作目录的内容。如果使用彩色终端,ls还会以不同颜色显示文件名,帮助区分常规文件(白色)和目录(蓝色)。

用户andy想列出用户家目录下所有文件,包括隐藏文件,其中以点开头的文件是隐藏文件。

$ ls -a

. ...bash_logout .bash_profile .bashrcpublic_html web work

用户andy详细列出目录下文件的权限、所有者文件大小等详细信息。

$ ls -l

total 12

drwxrwxr-x. 3 andy andy 4096 May 29 20:27public_html

drwxrwxr-x. 2 andy andy 4096 May 29 20:25web

drwxrwxr-x. 5 andy andy 4096 May 29 20:31work

用户andy在查看机器的网络配置时,他认为目录/etc/sysconfig/networking可能非常重要。用户andy递归类出这目录中的文件和子目录,查看其内容。

$ ls -R /etc/sysconfig/networking/

/etc/sysconfig/networking/:

devices profiles

/etc/sysconfig/networking/devices:

/etc/sysconfig/networking/profiles:

default

/etc/sysconfig/networking/profiles/default:

至于其它常用选项可以参考以上方法在Linux下执行下,观察使用选项前后的变化,就可以明白该选项的含义。

04

切换目录:cd

Linux提供了cd命令,可以从当前目录位置切换到其它目录,cd是change directory的缩写。

命令语法

cd [DIRECTORY]

如果没有指定,DIRECTORY默认为用户主目录。

举个例子

用户andy使用pwd命令显示下当前工作是/home/andy/web,然后使用cd命令切换到/home 后使用pwd确认,之后又切换到/home/andy/work目录,使用ls显示该目录下的内容。

$ pwd

/home/andy/web

$ cd /home/

$ pwd

/home

$ cd /home/andy/work/

$ ls

images logos photo

还有一些特殊的缩写表示特定的目录:

使用 . 表示当前工作目录

使用 .. 表示父目录

使用 ~ 表示用户家目录

使用 - 表示上个工作目录

观察以下例子,理解各个含义:

$ cd .

$ pwd

/home/andy/work

$ cd ..

$ pwd

/home/andy

$ cd ~

$ pwd

/home/andy

$ cd -

/home/andy

05

显示文件和目录树:tree

tree命令以树状图列出文件目录结构。

命令语法

tree [OPTIONS] [DIRECTORY…]

常用参数:

-a : 不隐藏任何以 . 字符开始的条目

-d : 只显示目录不显示文件

-f : 每个文件都显示路径

-t : 根据最后修改时间(mtime)排序

-L n : 只显示 n 层目录 (n为数字)

注意:tree 参数后面如果跟目录名(如/test)就是显示所跟目录名的目录树;如果不跟目录,而是tree后面直接跟随参数,那么就是现实当前所在目录的目录树

举个例子

用户andy想查看当前目录/home/andy的目录树结构

$tree

.

├── public_html

│ └── photo

├── web

└── work

├── images

├── logos

└── photo

7 directories, 0 files

用户andy想查看当前目录/home/andy的目录树结构,包括隐藏文件。

$ tree -a

.

├── .bash_history

├── .bash_logout

├── .bash_profile

├── .bashrc

├── public_html

│ └── photo

├── web

└── work

├── images

├── logos

└── photo

7 directories, 4 files

用户andy想查看当前目录/home/andy的目录树结构,包括隐藏文件,并且只显示目录不显示文件。

$ tree -ad

.

├── public_html

│ └── photo

├── web

└── work

├── images

├── logos

└── photo

7 directories

用户andy想查 / 目录下所有一级子目录的目录树结构。

$ tree -L 1 /

/

├── bin

├── boot

├── dev

├── etc

├── home

├── lib

├── lib64

├── lost+found

├── media

├── mnt

├── opt

├── proc

├── public

├── root

├── sbin

├── scripts

├── selinux

├── srv

├── sys

├── tmp

├── usr

├── var

└── youqu

23 directories, 0 files

06

删除目录:rmdir

删除目录的命令是rmdir(remove directory)命令。

命令语法

rmdir [OPTIONS]

常用选项:

-p, --parents删除指定目录及其上级文件夹,例如"rmdir -p a/b/c'"与"rmdir a/b/c a/b a'" 基本相同。

如果目录是空的,此命令会删除他们,如果目录中有内容,则会产生错误信息且不能删除目录,但是它会继续删除其余的空目录。

举个例子

用户andy希望删除他的子目录~/public_html/photo,他会进行如下操作:

$ ls public_html/

photo

$ rmdir public_html/photo

$ ls public_html/

我们注意到命令如mkdir和rmdir以静默形式完成。

1

END

1

关注我们

云运维联盟

专注Linux云平台运维

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180610G1KO8200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券