19. bash 文件系统管理

1.pwd

pwd命令用于显示列出当前所在的目录。

pwd

2.cd

cd命令用来改变用户所在的目录。

# 进入用户的主目录
cd

# 进入前一个工作目录
cd -

# 进入指定用户的主目录
cd ~user_name

3.ls

ls目录可以显示指定目录的内容。不加参数时,显示当前目录的内容。

ls

上面命令显示当前目录的内容。

ls命令也可以显示指定文件是否存在。

ls foo.txt

-l参数可以显示文件的详细信息。

ls -l foo.txt
-rw-rw-r-- 1 me   me   0 2016-03-06 14:52 foo.txt

上面命令输出结果的第一栏,是文件的类型和权限。

文件类型分为以下几种。

  • - 普通文件
  • d 目录
  • l 符号链接。注意,对于符号链接文件,剩余的文件属性总是"rwxrwxrwx"。
  • c 字符设备文件,指按照字节流处理数据的设备,比如调制解调器。
  • b 块设备文件,指按照数据块处理数据的设备,比如硬盘。

其他参数的用法。

# 显示多个目录的内容
ls ~ /usr

# -a --all 显示隐藏文件
ls -a

# -A 与-a类似,但是不显示当前目录和上一级目录两个点文件
ls -A

# -l 显示详细信息
ls -l

# -1 单列显示,每行只显示一个文件
ls -1

# -d 显示当前目录本身,而不是它的内容
# 通常与-l配合使用,列出一个目录本身的详细信息
ls -dl

# -F 目录名之后添加斜杠,可执行文件后面添加星号
ls -F

-h 与-l配合使用,将文件大小显示为人类可读的格式

# -t 按文件修改时间排序,修改晚的排在前面
ls -t

-s 按文件大小排序,

# --reverse 显示结果倒序排列
ls -lt --reverse

如果只显示一个目录里面的子目录,不显示文件,可以使用下面这些命令。

# 只显示常规目录
ls -d */
ls -F | grep /
ls -l | grep ^d
tree -dL 1

# 只显示隐藏目录
ls -d .*/

# 隐藏目录和非隐藏目录都显示
find -maxdepth 1 -type d

另一个简便方法是利用自动补全功能,先键入cd命令,然后连按两下tab键。

4.stat

stat命令是加强版的ls命令,可以显示一个文件的详细信息。

stat script.sh

效果:

image.png

5.touch

touch用来设置或更新文件的访问,更改,和修改时间。然而,如果一个文件名参数是一个 不存在的文件,则会创建一个空文件。

touch timestamp

上面命令创建了一个名为timestamp空文件。如果该文件已经存在,就会把它的修改时间设置为当前时间。

mkdir -p playground/dir-{00{1..9},0{10..99},100}
touch playground/dir-{00{1..9},0{10..99},100}/file-{A..Z}

上面的命令创建了一个包含一百个子目录,每个子目录中包含了26个空文件。

6.file

file命令显示指定文件的类型。

file script.sh

效果如下:

image.png

7.chmod

chmod命令用于更改文件的权限,是“change mode”的缩写。

chmod 600 foo.txt

上面命令将foo.txt的权限改成了600。

chmod还可以接受四个缩写,为不同的对象单独设置权限。

  • u 所有者“user”的简写
  • g 用户组“group”的缩写
  • o 其他所有人“others”的简写
  • a 所有人“all”的简写
# 为所有者添加可执行权限
chmod u+x foo.txt

# 删除所有者的可执行权限
chmod u-x foo.txt

# 为所有人添加可执行权限,等价于 a+x
chmod +x foo.txt

# 删除其他人的读权限和写权限。
chmod o-rw foo.txt

# 设定用户组和其他人的权限是读权限和写权限
chmod go=rw foo.txt

# 为所有者添加执行权限,设定用户组和其他人为读权限和写权限,多种设定用逗号分隔
作者:余识
全部文章:0
会员文章:0
总阅读量:0
c/c++pythonrustJavaScriptwindowslinux