Linux文件管理命令

系统版本:

[root@node1 ~]# cat /etc/redhat-release 
CentOS Linux release 7.1.1503 (Core) 
[root@node1 ~]# uname -r
3.10.0-229.el7.x86_64

 

目录操作命令

ls


列出指定目录下的内容。

语法:

ls [OPTION]… [FILE]…

选项:

  • -a: 显示所有文件,包括隐藏文件
  • -A: 显示除.和..之外的所有文件
  • -l: --long,长格式列表,即显示文件的详细属性信息
  • -h, --human-readable: 对文件大小单位换算,换算后结果可能会是非精确值
  • -d: 查看目录自身而非其内部的文件列表
  • -r: reverse,逆序显示
  • -R: recursive,递归显示

示例:

[root@node1 ~]# ls -l /var/log
….
-rw-r--r--. 1 root root  6340 May 23 14:51 boot.log
….

以上各字段含义:

  • -rw-r--r--
    • rw-: 文件属主的权限
    • r--: 文件属组的权限
    • r--: 其它用户(非属主、属组)的权限
  • 1: 数字表示文件被硬链接的次数
  • 第一个root: 文件的属主
  • 第二个root: 文件的属组
  • 6340: 数字表示文件的大小,单位是字节
  • May 23 14:51: 文件最近一次被修改的时间
  • boot.log: 文件名

cd


切换目录。

语法:

cd [/PATH/TO/SOMEDIR]

选项:

  • cd: 切换回家目录
  • cd ~: 切换回自己的目录
  • cd ~USERNAME: 切换至指定用户的家目录
  • cd ..: 进入上一层目录
  • cd -: 在上一次所在目录与当前目录之间来回切换

pwd


显示当前目录。

语法:

pwd [OPTION]…

选项:

  • -P: 显示出真实的路径,而非使用链接 (link) 路径

示例:

[root@node1 ~]# cd /var/mail
[root@node1 mail]# pwd -P
/var/spool/mail

mkdir


创建目录。

语法:

[OPTION]… DIRECTORY…

选项:

  • -p: 自动按需创建父目录
  • -v: verbose,显示详细过程
  • -m MODE: 直接给定权限

示例:

[root@node1 ~]# mkdir -pv /tmp/m/n/p
mkdir: created directory ‘/tmp/m’
mkdir: created directory ‘/tmp/m/n’
mkdir: created directory ‘/tmp/m/n/p’

rmdir


删除空目录。

语法:

rmdir [OPTION]… DIRECTORY…

选项:

  • -p: 删除某目录后,如果其父目录为空,则一并删除
  • -v: 显示过程

 

目录与文件的复制、删除、移动命令

cp


拷贝文件和目录。

单源复制:

cp [OPTION]… [-T] SOURCE DEST

  • 如果DEST不存在:则先创建此文件,并复制源文件的数据流至DEST中
  • 如果DEST存在:
    • 如果DEST是非目录文件:覆盖目标文件
    • 如果DEST是目录文件:先在DEST目录下创建一个与源文件同名的文件,并复制其数据流

多源复制:

cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…

  • 如果DEST不存在:错误
  • 如果DEST存在:
    • 如果DEST是非目录文件:错误
    • 如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名

选项:

  • -i: 交互式复制,即覆盖之前提醒用户确认
  • -f: 强制覆盖目标文件
  • -r, -R: 递归复制目录
  • -d: 复制符号链接文件本身,而非其指向的源文件
  • -a: -dR --preserve=all, archive, 用于实现归档(备份)
  • --preserve=
    • mode: 权限
    • ownership: 属主和属组
    • timestamps: 时间戳
    • context: 安全标签
    • xattr: 扩展属性
    • links: 符号链接
    • all: 上述所有属性

示例:

[root@node1 ~]# cp -r /var/log/ /tmp/
[root@node1 ~]# ll /tmp/log/
total 3508
drwxr-xr-x. 2 root root 4096 Jun 2 16:28 anaconda
drwxr-x---. 2 root root 22 Jun 2 16:28 audit
-rw-r--r--. 1 root root 6397 Jun 2 16:28 boot.log
-rw-------. 1 root root 0 Jun 2 16:28 btmp
-rw-------. 1 root root 384 Jun 2 16:28 btmp-20180601
….

mv


移动(重命名)文件。

语法:

mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…

选项:

  • -i: 交互式
  • -f: 强制

rm


删除文件或目录。

语法:

rm [OPTION]… FILE…

选项:

  • -i: 交互式
  • -f: 强制
  • -r: 递归

删除目录: rm -rf /PATH/TO/DIR

建议不要使用rm直接删除数据,而是先使用mv将数据统一移动到一个目录下,再定期清理。

 

文件的新建与查看命令

touch


更改文件时间戳或创建空文件。

语法:

touch [OPTION]… FILE…

选项:

  • -c: 指定的文件路径不存在时不予创建
  • -a: 仅修改access time
  • -m: 仅修改modify time
  • -t [[CC]YY]MMDDhhmm[.ss]: 指定时间戳

示例:

[root@node1 ~]# touch /tmp/functions
#创建functions空文件
 
[root@node1 ~]# ll /tmp/functions
-rw-r--r-- 1 root root 0 Jun 2 18:04 /tmp/functions
 
[root@node1 ~]# touch -m -t 0212010303.03 /tmp/functions
#修改modify time为2002年12月1日3点3分3秒
 
[root@node1 ~]# stat /tmp/functions
#使用stat命令显示文件时间戳信息
File: ‘/tmp/functions’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 101524444 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-06-02 18:04:01.035507593 +0800
Modify: 2002-12-01 03:03:03.000000000 +0800
Change: 2018-06-02 18:05:18.605411488 +0800
Birth: -

cat


查看文本文件的内容。

语法:

cat [OPTION]… [FILE]…

选项:

  • -n: 给显示的文本行编号
  • -E: 显示行结束符$

示例:

[root@node1 ~]# cat -n /etc/fstab
1
2 #
3 # /etc/fstab
4 # Created by anaconda on Tue May 22 11:36:12 2018
5 #
6 # Accessible filesystems, by reference, are maintained under ‘/dev/disk’
7 # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
8 #
9 /dev/mapper/centos-root / xfs defaults 0 0
10 UUID=05a06e03-2c09-49d2-9e38-915bd43eba31 /boot xfs defaults 0 0
11 /dev/mapper/centos-swap swap swap defaults 0 0

more


一页一页翻屏查看文件。

快捷键:

  • space: 向下翻一行
  • Enter: 代表向下翻一行
  • /keyword: 代表在这个显示的内容当中,向下搜寻字串这个关键字
  • :f: 立刻显示出档名以及目前显示的行数
  • q: 代表立刻离开 more ,不再显示该文件内容
  • b或Ctrl+b: 代表往回翻页,不过这动作只对文件有用

less


一页一页翻屏查看文件。less与more区别:使用more命令,不能向前翻,只能往后翻,但less可以使用 [pageup] [pagedown] 等按键翻看文件。

快捷键:

  • 空格键:向文件尾翻一屏
  • b:向文件首部翻一屏
  • ctrl+d:向文件尾部翻半屏
  • ctrl+u:向文件首部翻半屏
  • 回车键:向文件尾部翻一行
  • k:向文件首部翻一行
  • G:跳转至最后一行
  • g:跳转至第一行
  • #G:跳转至指定行
  • 1G:跳转至文件首部
  • q: 退出

文本搜索:

  • /keyword: 从文件首部向文件尾部依次查找
  • ?keyword: 从文件尾部向文件首部依次查找
    • n: 与查找命令方向相同
    • N: 与查找命令方向相反

head


显示文件开头的内容。

语法:

head [OPTION]… [FILE]…

选项:

  • -n #或-#: 显示指定行数的内容

示例:

[root@node1 ~]# head -n 5 /etc/rc.d/init.d/functions
# -*-Shell-script-*-
#
# functions This file contains functions to be used by most or all
# shell scripts in the /etc/init.d directory.
#

tail


显示文件结尾的内容。

语法:

tail [OPTION]… [FILE]…

选项:

  • -n #或-#: 显示指定行数的内容
  • -f: 查看文件尾部内容结束后不退出,跟随显示新增的行

 

查看文件类型的命令

file


查看文件内容类型。

示例:

[root@node1 ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0xec333a104e045327c5e3d0ca6dda16c610a210f3, stripped

 
 

发表评论

邮箱地址不会被公开。