linux文件类型及相关命令

linux下的文件类型

-:普通文件

d: 目录文件

b: 块设备

c: 字符设备

l: 符号链接文件

p: 管道文件pipe

s: 套接字文件socket

pwd命令

作用: printing working directory

      打印当前工作目录

语法:pwd: pwd [-LP]

选项:
-P 显示真实物理路径

-L 显示链接路径(默认)

[root@centos7 bin 00:02:52]$pwd -P
/usr/bin

绝对路径和相对路径

绝对路径:以根为起点,完整的文件的位置路径

相对路径:指定相对于当前工作目录或某目录的位置

其中,相对路径的表示有:

. 当前目录
.. 上级目录

实例:
[root@centos7 bin 00:21:21]$pwd
/bin
[root@centos7 bin 00:24:03]$cd ..
[root@centos7 / 00:24:05]$pwd
/
[root@centos7 / 00:24:06]$cd .
[root@centos7 / 00:24:11]$ 

basename命令————基名

作用:Print NAME with any leading directory components removed.

仅显示一个文件路径的最后文件名

实例:

[root@centos7 bin 00:09:59]$basename /etc/init.d/functions
functions

dirname命令————目录名

作用:Output each NAME with its last non-slash component and trailing slashes removed.

显示文件名前面的目录名

实例:
[root@centos7 bin 00:10:40]$dirname /etc/init.d/functions 
/etc/init.d

cd命令

作用:Change the shell working directory.

      更改当前工作目录

语法; cd: cd [-L|[-P [-e]]] [dir]

实例:

切换到上级目录: cd ..

切换到当前用户家目录: cd或cd ~

切换到用户USERNAME的家目录:cd ~USERNAME

切换到上一个工作目录: cd -

——————相关的环境变量 :

PWD:当前目录路径

OLDPWD:上一次目录路径

[root@centos7 bin 00:21:02]$echo $PWD
/bin
[root@centos7 bin 00:21:08]$echo $OLDPWD
/

ls命令

作用:List information about the FILEs (the current directory by default).

列出关于文件的信息

语法:Usage: ls [OPTION]... [FILE]...

选项:

ls -a 列出所有文件,包含隐藏文件

ls -l 显示详细信息

ls -R 递归,适用于目录

ls -r 逆序

ls -ld 目录和符号链接信息

ls -1 文件分行显示,默认按字母顺序排序,文件中的数字优先级高于字母;

ls -S 按从大到小排序

ls -t 按mtime排序

ls -u 配合-t选项,显示并按atime从新到旧排序

ls -U 按目录存放顺序显示

ls -X 按文件后缀排序

ls -F:在不同类型的文件后面添加符号用以区分;

[root@centos7 / 00:24:59]$ls -F
bin@   data/  etc/   lib@    media/  opt/   root/  sbin@  sys/  usr/
boot/  dev/   home/  lib64@  mnt/    proc/  run/   srv/   tmp/  var/
目录添加/,而链接文件添加@

stat命令

作用:Display file or file system status.

显示文件的状态,包括inode、链接数、文件权限、属主和属组,以及三种时间类型:

access time:访问时间,atime,读取文件内容

modify time: 修改时间, mtime,改变文件内容(数据)

change time: 改变时间, ctime,文件属性发生改变

语法:Usage: stat [OPTION]... FILE...

实例:
[root@centos7 / 00:33:31]$stat /etc/issue
  File: ‘/etc/issue’
  Size: 23          Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d  Inode: 67200792    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:etc_t:s0
Access: 2018-04-29 00:35:55.000000000 +0800    访问时间
Modify: 2018-04-29 00:35:55.000000000 +0800     文件内容修改时间
Change: 2018-07-18 17:25:36.403978146 +0800   文件属性修改时间
 Birth: -

touch命令

作用:Update the access and modification times of each FILE to the current time,A FILE argument that does not exist is created empty, unless -c or -h is supplied.

创建文件或者刷新时间

语法:

touch [OPTION]... FILE...

选项:

-a 仅改变 atime和ctime

-m 仅改变 mtime和ctime

-t [[CC]YY]MMDDhhmm[.ss]

指定atime和mtime的时间戳

-c 如果文件不存在,则不创建,说白了,就是要求文件必须存在,用来刷新时间。

cp命令

作用:Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.

复制单个文件到目标,或者复制多个文件到目录下

语法:

Usage: cp [OPTION]... [-T] SOURCE DEST

or: cp [OPTION]... SOURCE... DIRECTORY

or: cp [OPTION]... -t DIRECTORY SOURCE...

选项:

-i:覆盖前提示 –n:不覆盖,注意两者顺序

-r, -R: 递归复制目录及内部的所有内容

-a: 归档,相当于-dR --preserv=all

-d:--no-dereference --preserv=links 不复制原文件,只复制链接名

--preserv[=ATTR_LIST]
mode: 权限
ownership: 属主属组
timestamp:
links
xattr
context
all

-p: 等同--preserv=mode,ownership,timestamp

-v: --verbose

-f: --force

-u:--update 只复制源比目标更新文件或目标不存在的文件

--backup=numbered 目标存在,覆盖前先备份加数字后缀

总结:
image.png

小试牛刀

1、定义别名命令baketc,每天将/etc/目录下所有文件,备份到
/app独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd,
备份过程可见

alias baketc="cp -av /etc/ /data/backup`date +%F`"
注意:错误用法如下
alias baketc="cp -av /etc/* /data/backup`date +%F`"
*表示所有文件,复制的目标必须是一个已经存在的目录。

2、创建/app/rootdir目录,并复制/root下所有文件到该目录内,
要求保留原有权限

cp  -a  /root/  /app/rootdir

3、复制/root下的所有文件,包括隐藏文件,到/data下。

cp /root/.  /data/  一个.表示当前目录,即包括隐藏文件和非隐藏文件。

mv命令

作用:Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

重命名文件或者移动文件到目录下

语法:

Usage: mv [OPTION]... [-T] SOURCE DEST
or: mv [OPTION]... SOURCE... DIRECTORY
or: mv [OPTION]... -t DIRECTORY SOURCE...

选项:

-i: 交互式

-f: 强制

建议:默认对root用户定义了别名: alias mv='mv -i',\mv可以使用原命令;
普通用户默认并没有对mv定义别名,在移动和覆盖时不会提示,建议添加别名。

rm命令

作用:Remove (unlink) the FILE(s)

删除(取消链接)文件

语法:Usage: rm [OPTION]... FILE...

选项:

-i 交互式

-f 强制删除

-r 递归删除目录树

--no-preserve-root 删除/ ,默认Centos6开始禁止删除根,需要添加 --no-preserve-root才能删除。

rm -rf /    嘿嘿,试一下吧

同样,默认对root设置了关于rm的别名,如果不需要提示,可以使用\转义或者''执行原命令;
建议对普通用户设置别名,防止误操作。另外rm在删除不存在的文件时不会提示或者报错。

rename命令

作用:rename files

对文件重命名

语法:rename [options] expression replacement file...

批量更改文件名
[root@centos7 data 01:19:44]$touch file{1..10}.txt
[root@centos7 data 01:19:43]$ls
file10.txt  file2.txt  file4.txt  file6.txt  file8.txt
file1.txt   file3.txt  file5.txt  file7.txt  file9.txt
[root@centos7 data 01:19:44]$rename ".txt" ".txt.bak" f*
[root@centos7 data 01:19:59]$ls
file10.txt.bak  file2.txt.bak  file4.txt.bak  file6.txt.bak  file8.txt.bak
file1.txt.bak   file3.txt.bak  file5.txt.bak  file7.txt.bak  file9.txt.bak

tree命令——需要安装

作用:list contents of directories in a tree-like format

以树状格式列出目录的内容

选项:

-d: 只显示目录

-L level:指定显示的层级数目

-P pattern: 只显示由指定pattern匹配到的路径

[root@CentOS6 xin 09:32:52]$tree  -d /data
/data
└── xin
    ├── dir1
    └── dir2

3 directories
[root@CentOS6 xin 09:32:57]$tree -L 1 /data
/data
├── xin
├── xin.log
└── xin.txt

1 directory, 2 files
[root@CentOS6 xin 09:33:08]$tree -L 2 /data
/data
├── xin
│?? ├── dir1
│?? └── dir2
├── xin.log
└── xin.txt

mkdir命令

作用:Create the DIRECTORY(ies), if they do not already exist.

创建目录

语法:mkdir [OPTION]... DIRECTORY...

选项:

-p: 创建连续的多级目录

-v: 显示详细信息

-m MODE: 创建目录时直接指定权限

[root@CentOS6 xin 09:36:07]$mkdir -p dir1/dir2/dir3
[root@CentOS6 xin 09:36:22]$tree dir1/
dir1/
└── dir2
    └── dir3

rmdir命令

作用:Remove the DIRECTORY(ies), if they are empty.

删除空目录

语法:rmdir [OPTION]... DIRECTORY...

选项:

-p: 递归删除父空目录,从子目录开始往上级目录删除。

-v: 显示详细信息

猜你喜欢

转载自www.cnblogs.com/yuanhonli-xin/p/9393735.html