• Welcome to Journal web site.

我是 PHP 程序员

- 开发无止境 -

Next
Prev

Linux 目录和文件管理

Data: 2015-06-14 17:44:43Form: JournalClick: 9

# Linux 目录和文件管理

  • 在 Linux 系统中,一切都是文件

# 一、ll 显示当前目录下的内容,详细列出

  • ll 并不是 linux 下一个基本的命令,它实际上是 ls -l 的一个别名
# 查看当前目录
ll
# 查看根目录
ll /
# 查看框架文件
ll /www/laravel

# 二、pwd 打印当前工作目录

语法:pwd [-P]

编号参数说明
1-P显示出真实的路径,而非使用连结 (link) 路径。
cd /sbin
# 打印当前工作目录
pwd
# 打印当前工作真实目录
pwd -P

# 三、mkdir 创建空目录

语法:mkdir [-p] 目录名称

编号参数说明
1-p用于递归创建空目录
# 创建目录
mkdir ouyangke
# 创建多级目录,报错
mkdir a/b/c/d
# 创建多级目录
mkdir -p a/b/c/d

# 四、rmdir 删除空目录

语法:rmdir [-p] 目录名

编号参数说明
1-p用于递归删除空目录
# 删除空目录
rmdir ouyangke
# 删除多级空目录
rmdir -p a/b/c/d

# 五、cp 复制文件和目录

语法:cp [-idpra] 源文件 目标文件

编号参数说明
1-i询问,如果目标文件已经存在,则会询问是否覆盖
2-d如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接
3-p复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间)
4-r递归复制,用于复制目录
5-a相当于 -d、-p、-r 选项的集合
6-l把目标文件建立为源文件的硬链接文件,而不是复制源文件
7-s把目标文件建立为源文件的软链接文件,而不是复制源文件
8-u若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用
cd /www/laravel
# 复制文件到public目录
cp laravel.sql public/
# 复制多个文件到public目录
cp composer.json composer.lock public/
# 复制app目录到public目录,会报错,需要增加参数
cp app public/
# 复制app目录到public目录
cp -r app public/
# 复制config目录到public目录,会提示是否覆盖,覆盖就y,加i参数一样效果
cp -a config public/
# 复制文件时改名
cp laravel.sql public/l.sql

备:源文件可以有多个,但这种情况下,目标文件必须是目录才可以


# 六、rm 删除文件或目录

语法:rm [选项] 文件或目录

编号选项说明
1-f强制删除(force),和 -i 选项相反,使用 -f,系统将不再询问,而是直接删除目标文件或目录
2-i和 -f 正好相反,在删除文件或目录之前,系统会给出提示信息,使用 -i 可以有效防止不小心删除有用的文件或目录
3-r递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件
cd /www/laravel/public
# 删除文件
rm laravel.php
# 删除多个文件
rm l.sql composer.json composer.lock
# 删除目录,会报错,需要增加参数
rm app
# 删除目录,会提示是否要删除
rm -r app/
# 删除目录,不提示
rm -rf config/

备:rm 命令是一个具有破坏性的命令,使用 rm 命令将其删除,将无法恢复,要慎之又慎


# 七、mv 移动文件或改名

语法:mv [选项] 源文件 目标文件

编号选项说明
1-f强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖
2-i交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项)
3-n如果目标文件已经存在,则不会覆盖移动,而且不询问用户
4-v显示文件或目录的移动过程
5-u若目标文件已经存在,但两者相比,源文件更新,则会对目标文件进行升级
cd /www/laravel
# 移动文件
mv laravel.sql public/
# 移动多个文件
mv composer.json composer.lock public/
# 移动app目录到public目录
mv app public/
# 移动config目录到public目录,询问覆盖,显示移动过程
cp package.json public/
mv -v package.json public/
# 移动文件时改名
mv server.php public/ser.php

# 八、touch 创建文件及修改文件时间戳

语法:touch [选项] 文件名

编号选项说明
1-a只修改文件的访问时间
2-c仅修改文件的时间参数(3 个时间参数都改变),如果文件不存在,则不建立新文件。
3-d后面可以跟欲修订的日期,而不用当前的日期,即把文件的 atime 和 mtime 时间改为指定的时间
4-m只修改文件的数据修改时间
5-t命令后面可以跟欲修订的时间,而不用目前的时间,时间书写格式为 YYMMDDhhmm
cd /www/laravel/public/
# 创建文件,文件如果存在,修改文件时间戳
touch index.php
# 创建多个文件
touch 1.php 2.php
# 修改文件时间戳,不创建新文件
touch -c index1.php
# 文件时间修改
touch -d "2000-11-11" index.php

# 九、补充知识

# 1、命名规则

  • 同其他系统相比,Linux 操作系统对文件或目录命名的要求相对比较宽松
    • 除了字符“/”之外,所有的字符都可以使用,但是要注意,在目录名或文件名中,使用某些特殊字符并不是明智之举。
    • 目录名或文件名的长度不能超过 255 个字符。
    • 目录名或文件名是区分大小写的。
    • 与 Windows 操作系统不同,文件的扩展名对 Linux 操作系统没有特殊的含义

# 2、文件类型

  • 第一次使用 linux,可能搞不清楚哪个是文件,哪个是目录
  • 终端软件会进行颜色区分:蓝色代表目录,其他颜色则表示是文件
  • 软件比较多,颜色不能统一,所以通过颜色来区分文件类型,难免有些牵强
  • 通过文件的属性进行区分:ls -l 命令
编号第一个字符文件类型
1-普通文件,包括纯文本文件、二进制文件、各种压缩文件等。
2d目录,类似 Windows 系统中的文件夹。
3b块设备文件,就是保存大块数据的设备,比如最常见的硬盘。
4c字符设备文件,例如键盘、鼠标等。
5s套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。
6p管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。
7l链接文件,类似 Windows 系统中的快捷方式。
Name:
<提交>