linux 文件与目录管理

linux 文件与目录管理

Linux的目录结构为树状结构,最顶级的目录为根目录**/**。

处理目录的常用命令:

ls(list files):列出目录及文件名
cd(change directory):切换目录
pwd(print work directory):显示目前的目录
mkdir(make directory):创建一个空的目录
rmdir(remove directory):删除一个空的目录
cp(copy file):复制文件或目录
rm(remove):删除文件或目录
mv(move file):移动文件与目录,或者修改文件与目录的名称
tree:以树型结构展示目录内容
  • ls

    ls -a 列出全部的文件,连通隐藏文件一起列出来
    ls -ld 仅列出目录本身,而不是列出目录内的文件数据等
    ls -l 长数据串列出,包含文件的属性与权限等等数据
    
  • pwd

    pwd 显示目前所在目录
    pwd -P 显示出确实的路径,而非使用链接(link)路径,P是大写
    
  • mkdir

    mkdir -m 配置文件的权限
    mkdir -p 创建多层目录
    
  • rmdir

    rmdir -p 一次性删除多级空目录
    **删除非空目录使用rm命令**
    
  • cp

    copy -a 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容
    copy -d 若来源档为链接档的属性,则复制链接档属性而非文件本身
    copy -f 若目标文件已经存在且无法开启,则移除后在尝试一次
    copy -i 若目标档已经存在时,在覆盖时会先询问动作的进行
    copy -l 进行硬式链接(hard link)的链接档创建,而非复制文件本身
    copy -p 连同文件的属性一起复制过去,而非使用默认属性
    copy -r 递归持续复制,用於目录的复制行为
    copy -s 复制成为符号链接档 (symbolic link),亦即『捷径』文件
    copy -u 若 destination 比 source 旧才升级 destination !
    
  • rm

    rm -f 忽略不存在的文件,不会出现警告信息
    rm -i 互动模式,在删除前会询问使用者是否动作
    rm -r 递归删除
    
  • mv

    mv [-fiu] source destination
    mv [options] source1 source2 source3 .... directory
    mv -f 如果目标文件已经存在,不会询问而直接覆盖
    mv -i 若目标文件已经存在,会询问是否覆盖
    mv -u 若目标文件已经存在,且source比较新,才会升级
    
  • tree

    -d:只显示目录
    -L:指定显示的层级数据
    -P pattern:只显示由指定wild-card pattern匹配到的路径
    
    #!/bin/bash
    
    # 定义普通变量
    CITY=SHENZHEN
    
    # 定义全局变量
    export NAME=cdeveloper
    
    # 定义只读变量
    readonly AGE=21
    
    
    # 打印变量值
    echo $CITY
    echo $NAME
    echo $AGE
    
    # 删除CITY变量
    unset CITY
    echo $CITY
    ~               
    

Linux 文件内容查看

查看文件时间戳

每个文件有三个时间戳:

  • atiem(access time)上一次访问时间
  • mtime(modify time)文件的修改时间
  • ctime(change time)元数据修改时间

mtime只有修改文件内容才会改变,更准确的说是修改了它的data block部分;而ctime是修改文件属性时改变的,确切的说是修改了它的元数据部分,例如重命名文件,修改文件所有者,移动文件(移动文件没有改变datablock,只是改变了其inode指针,或文件名)等.当然,修改文件内容也一定会改变ctime(修改文件内容至少已经修改了inode记录上的mtime,这也是元数据),也就是说mtime的改变一定会引起ctime的改变

stat [option] filename

[liusongle@localhost Desktop]$ stat greptest
  File: ‘greptest’
  Size: 1         	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 10718       Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/liusongle)   Gid: ( 1000/liusongle)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2023-07-20 13:06:59.221081996 +0800
Modify: 2023-07-20 13:06:59.221081996 +0800
Change: 2023-07-20 13:06:59.222081986 +0800
 Birth: -
[liusongle@localhost Desktop]$ 

文件基本操作命令

cat 从第一行开始显示文件内容
tac 从最后一行开始显示
nl 显示的时候,顺道输出行号
more 一页一页的显示文件内容
less 与more类似 但是可以往前翻页
head 只看头几行
tail 只看末尾几行

windows与linux文本格式转化工具:dos2unix

windows->linux:dos2unix

linux->windows:unix2dos

文件通配符模式

*    匹配零个或多个字符,但不匹配“.”开头的文件,即隐藏文件
?   匹配任何单个字符
~    当前用户家目录
~mage    用户mage家目录
~+和.    当前工作目录
~-      前一个工作目录
[0-9]   匹配数字范围
[a-z]   字母
[A-Z]   字母
[wang]  匹配列表中的任何的一个字符
[^wang] 匹配列表中的所有字符以外的字符
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母,表示 a-z
[:upper:]: 任意大写字母,表示 A-Z 
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符 
[:cntrl:]:控制(非打印)字符 
[:graph:]:图形字符 
[:xdigit:]:十六进制字符
[root@localhost Desktop]# touch file{a..z}.txt file{A..Z}.txt file{0..9}.txt
[root@localhost Desktop]# ll file{0..9}.txt
-rw-r--r--. 1 root root 0 Jul 20 10:24 file0.txt
-rw-r--r--. 1 root root 0 Jul 20 10:24 file1.txt
-rw-r--r--. 1 root root 0 Jul 20 10:24 file2.txt
-rw-r--r--. 1 root root 0 Jul 20 10:24 file3.txt
-rw-r--r--. 1 root root 0 Jul 20 10:24 file4.txt
-rw-r--r--. 1 root root 0 Jul 20 10:24 file5.txt
-rw-r--r--. 1 root root 0 Jul 20 10:24 file6.txt
-rw-r--r--. 1 root root 0 Jul 20 10:24 file7.txt
-rw-r--r--. 1 root root 0 Jul 20 10:24 file8.txt
-rw-r--r--. 1 root root 0 Jul 20 10:24 file9.txt
# 显示etc目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录
[root@localhost etc]# touch l{0..9}abc.txt
[root@localhost etc]# ls l[0-9]*[a-z]
l0abc.txt  l2abc.txt  l4abc.txt  l6abc.txt  l8abc.txt
l1abc.txt  l3abc.txt  l5abc.txt  l7abc.txt  l9abc.txt
# 显示/etc目录下以,任意一位数字开头,且以非数字结尾的文件或目录
[root@localhost etc]# touch {0..3}{a..c}.txt
[root@localhost etc]# ls [0-9]*[^0-9]
0a.txt  0c.txt  1b.txt  2a.txt  2c.txt  3b.txt
0b.txt  1a.txt  1c.txt  2b.txt  3a.txt  3c.txt
# 显示/etc/目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录
[root@localhost etc]# ls /etc/[^[:alpha:]][[:alpha:]]*
/etc/0a.txt  /etc/0c.txt  /etc/1b.txt  /etc/2a.txt  /etc/2c.txt  /etc/3b.txt
/etc/0b.txt  /etc/1a.txt  /etc/1c.txt  /etc/2b.txt  /etc/3a.txt  /etc/3c.txt
# 显示/etc/目录下所有以rc开头,并后面是0-6之间的数字,其它为任意字符的文件或目录
[root@localhost etc]# ls -d rc[0-6]*
rc0.d  rc1.d  rc2.d  rc3.d  rc4.d  rc5.d  rc6.d
# 显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录
[root@localhost etc]# ls [mnrp]*.conf
man_db.conf  nfs.conf       ntp.conf      pnm2ppa.conf      resolv.conf
mke2fs.conf  nfsmount.conf  numad.conf    radvd.conf        rsyncd.conf
mtools.conf  nsswitch.conf  pbm2ppa.conf  request-key.conf  rsyslog.conf
# 只显示etc下的非隐藏文件和目录
[root@localhost etc]# ls -d /etc/*/
/etc/abrt/               /etc/gconf/           /etc/ndctl/           /etc/sane.d/
/etc/alsa/               /etc/gcrypt/          /etc/NetworkManager/  /etc/sasl2/
······
  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值