Linux-目录与文件

命令速查:cd、ls、mkdir、cp、mv、rm、stat、touch、file


1. cd - 切换shell的工作目录

# 切换至指定的全路劲
cd /usr/local
# 切换至上级目录
cd ..
# 切换至前一个目录
cd -
# 切换至当前用户根目录
cd ~

2. ls - 显示目录内容

语法

ls [OPTION]... [FILE]...

示例

# 显示当前目录下的文件
ls
# 显示指定目录下的文件
ls /tmp
# 显示所有文件(包括隐藏文件和.以及..)
ls -a
# 显示几乎所有文件(不包括.和..,但包括隐藏文件)
ls -A
# 以长格式显示文件详细信息
ls -l 
# 显示目录本身的信息
ls -d
# 反序显示文件信息
ls -r
# 以长格式显示文件信息,同时显示文件的inode号
ls -li
# 以长格式显示文件信息,同时以可读格式显示文件大小(e.g., 1K 234M 2G)
ls -lh

3. mkdir - 创建目录

示例

# 创建目录
mkdir /tmp/dir
# 创建目录,如果上层目录不存在则一并创建
mkdir -p /tmp/a/b/c
# 创建目录同时分配权限
mkdir -m 777 /tmp/test

4. cp - 复制文件或目录

语法

cp 原文件 目标文件
cp 原文件 目标目录(将文件复制到目标目录下)
cp 原目录 目标目录(将目录及目录下的文件一并复制到目标目录下)

示例

cp的用法与mv基本一致,参考mv部分。

5. mv - 移动文件或者重命名文件(在同一目录下移动即重命名)

语法

mv 原文件 目标文件
mv 原文件 目标目录(将文件移动到目标目录下)
mv 原目录 目标目录(将目录及目录下的文件一并移动到目标目录下)

示例

当前目录下有2个字目录mydir1,mydir2,mydir1中有a,b,c三个文件,mydir2中有d,e,f三个文件

[root@localhost ~]# tree
.
├── mydir1
│   ├── a
│   ├── b
│   └── c
└── mydir2
    ├── d
    ├── e
    └── f

2 directories, 6 files

1.将mydir1/a移动至mydir2,文件名改为aa

[root@localhost ~]# mv mydir1/a mydir2/aa
[root@localhost ~]# tree
.
├── mydir1
│   ├── b
│   └── c
└── mydir2
    ├── aa
    ├── d
    ├── e
    └── f

2 directories, 6 files

2.将mydir2/aa移动至mydir1

[root@localhost ~]# mv mydir2/aa mydir1
[root@localhost ~]# tree
.
├── mydir1
│   ├── aa
│   ├── b
│   └── c
└── mydir2
    ├── d
    ├── e
    └── f

2 directories, 6 files

3.将mydir1下的所有文件移动至mydir2

[root@localhost ~]# mv mydir1/* mydir2
[root@localhost ~]# tree
.
├── mydir1
└── mydir2
    ├── aa
    ├── b
    ├── c
    ├── d
    ├── e
    └── f

2 directories, 6 files

4.将mydir2及其下的所有文件移动至mydir1

[root@localhost ~]# mv mydir2 mydir1
[root@localhost ~]# tree
.
└── mydir1
    └── mydir2
        ├── aa
        ├── b
        ├── c
        ├── d
        ├── e
        └── f

2 directories, 6 files

6. rm - 删除文件或目录

示例

rm -rf 文件或目录

7. stat - 显示文件或文件系统状态

示例

显示文件状态

[root@localhost ~]# stat anaconda-ks.cfg
  文件:"anaconda-ks.cfg"
  大小:1241       块:8          IO 块:4096   普通文件
设备:fd00h/64768d Inode:33574991    硬链接:1
权限:(0600/-rw-------)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2018-05-22 16:18:36.937075491 +0800
最近更改:2018-05-22 16:18:36.938075472 +0800
最近改动:2018-05-22 16:18:36.938075472 +0800
创建时间:-

以简洁方式显示文件状态

[root@localhost ~]# stat -t anaconda-ks.cfg
anaconda-ks.cfg 1241 8 8180 0 0 fd00 33574991 1 0 0 1526977116 1526977116 1526977116 0 4096

显示文件系统状态

[root@localhost ~]# stat -f anaconda-ks.cfg
  文件:"anaconda-ks.cfg"
    ID:fd0000000000 文件名长度:255     类型:xfs
块大小:4096       基本块大小:4096
    块:总计:4452864    空闲:4040621    可用:4040621
Inodes: 总计:8910848    空闲:8880246

以简洁方式显示文件系统状态

[root@localhost ~]# stat -ft anaconda-ks.cfg
anaconda-ks.cfg fd0000000000 255 58465342 4096 4096 4452864 4040614 4040614 8910848 8880245

7. touch - 修改文件时间戳

语法

touch [OPTION]... FILE...

特殊用法:不加选项时,则(先)创建文件

示例
首先查看当前文件状态

[root@localhost ~]# stat anaconda-ks.cfg 
  文件:"anaconda-ks.cfg"
  大小:1241       块:8          IO 块:4096   普通文件
设备:fd00h/64768d Inode:33574991    硬链接:1
权限:(0600/-rw-------)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2018-05-22 16:18:36.937075491 +0800
最近更改:2018-05-22 16:18:36.938075472 +0800
最近改动:2018-05-22 16:18:36.938075472 +0800
创建时间:-

修改访问时间为指定的时间

[root@localhost ~]# touch -at 201701020304.56 anaconda-ks.cfg 
[root@localhost ~]# stat anaconda-ks.cfg 
  文件:"anaconda-ks.cfg"
  大小:1241       块:8          IO 块:4096   普通文件
设备:fd00h/64768d Inode:33574991    硬链接:1
权限:(0600/-rw-------)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2017-01-02 03:04:56.000000000 +0800
最近更改:2018-05-22 16:18:36.938075472 +0800
最近改动:2018-06-07 14:36:14.159058352 +0800
创建时间:-

修改访问时间和修改时间为指定的时间

[root@localhost ~]# touch -t 201801020304.56 anaconda-ks.cfg 
[root@localhost ~]# stat anaconda-ks.cfg 
  文件:"anaconda-ks.cfg"
  大小:1241       块:8          IO 块:4096   普通文件
设备:fd00h/64768d Inode:33574991    硬链接:1
权限:(0600/-rw-------)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2018-01-02 03:04:56.000000000 +0800
最近更改:2018-01-02 03:04:56.000000000 +0800
最近改动:2018-06-07 14:36:36.443880082 +0800
创建时间:-

修改访问时间为当前时间

[root@localhost ~]# touch -a anaconda-ks.cfg 
[root@localhost ~]# stat anaconda-ks.cfg 
  文件:"anaconda-ks.cfg"
  大小:1241       块:8          IO 块:4096   普通文件
设备:fd00h/64768d Inode:33574991    硬链接:1
权限:(0600/-rw-------)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2018-06-07 14:36:51.373760648 +0800
最近更改:2018-01-02 03:04:56.000000000 +0800
最近改动:2018-06-07 14:36:51.373760648 +0800
创建时间:-

修改访问时间和修改时间为当前时间

[root@localhost ~]# touch anaconda-ks.cfg 
[root@localhost ~]# stat anaconda-ks.cfg 
  文件:"anaconda-ks.cfg"
  大小:1241       块:8          IO 块:4096   普通文件
设备:fd00h/64768d Inode:33574991    硬链接:1
权限:(0600/-rw-------)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2018-06-07 14:37:08.450624040 +0800
最近更改:2018-06-07 14:37:08.450624040 +0800
最近改动:2018-06-07 14:37:08.450624040 +0800
创建时间:-

8. file - 识别文件类型,辨别文件编码格式。

它通过查看文件的头部信息获取文件类型,而不是像windows通过扩展名来确定文件类型,linux中文件名的后缀只是辅助识别文件类型(规范),并不能真正决定文件的类型。

示例

[root@VM_0_171_centos ~]# file anaconda-ks.cfg
anaconda-ks.cfg: ASCII text

你可能感兴趣的:(Linux-目录与文件)