第一章节 文件管理--实战练习

一、实战练习1

1、mkdir创建多级目录

mkdir -p /data

2、在当前目录下创建文件夹

mkdir 1 2 3 4 5 6 7 8 9 10

3、在当前目录下创建001至100文件夹

mkdir -p {001..100}

4、在当前目录下创建a开头001至100文件夹

mkdir -p a{001..100}

5、在当前目录下创建a开头中间名001至100,并且是-qf2302结尾文件夹

mkdir -p a{001..100}-qf2302

6、在当前目录下分别创建01至12目录,并且在各级目录下分别创建01至30目录

mkdir -p {01..12}/{01..30}

7、在当前目录下单独创建目录a1,c5,d6,e9,名称前缀为qf2302

mkdir -p qf2302{a1,c5,d6,e9}

8、在当前目录下以当前时间为名的目录

mkdir -p date +%F_%T

9、创建前缀名qf230201至qf230230后缀名.年月日时分秒的目录

格式例如:qf230230.2022-11-16_10:59:48

mkdir -p qf2302{01..30}.date +%F_%T

10、touch批量创建空文件,文件名(顺序开始)为qf2302001.txt至qf2302100.txt

touch qf2302{001..100}.txt

11、touch批量创建具有相同前缀的多个空文件,文件名为不连续。

touch qf2302{01,02,03,09}.txt

11、对文件在原位置直接备份,文件名为原名称+.bak后缀。

cp /root/anaconda-ks.cfg{,.bak}

12、备份文件以时间作为后缀

cp /root/anaconda-ks.cfg /root/anaconda-ks.cfg.date +%F

13、cat有内容写入文件

cat >>/data/test.txt >>EOF

1

2

3

4

5

EOF

二、实战练习2

1.创建带时间标记的目录,格式为:/data/年月日

mkdir -p /data/ $(date +%Y%m%d)

2.查找/var/log目录下,大小在4k以上,将查找到的文件复制到步骤1创建的目录下

find /var/log -size +4k -exec cp -f {} /data/$(date +%Y%m%d) ;

3.对步骤1的目录进行打包,名为时间标记_log.tar.gz.例如20230609161401_log.tar.gz

tar cvzf $(date +%Y%m%d) _log.tar.gz $(date +%Y%m%d)

4.查找在步骤1创建的目录下,大小在4k以上的普通文件,将符合条件的文件删除.

find /data/$(date +%Y%m%d) -type f -size +4k -exec rm -rf {} ;

备注时间戳 : $(date +%Y%m%d)

三、实战练习3

使用linux命令完成如下效果:

1.创建目录/opt/file/年月日,如/opt/file/20230613.

2.在步骤1所创建的目录下,批量创建文件,要求如下:

名称规则:前缀为大写A至Z_随机字符(字母数字符号,长度20)

名称规则:前缀为小写a至z_随机字符(字母数字符号,长度20)

3.将生成的文件名称信息保存至/opt/fileinfo.log中 (显示路径)

mkdir -p /opt/file/date +%Y%m%d

for i in {A..Z}

do

touch /opt/file/date +%Y%m%d/$i_$(openssl rand -base64 40 | tr -d '/' | cut -c 1-20)

touch /opt/file/date +%Y%m%d/{a..z}_$(openssl rand -base64 40 | tr -d '/' | cut -c 1-20)

find /opt/file/date +%Y%m%d -type f >/opt/fileinfo.log

done

4.查找/opt/file/目录下,将上述步骤生成的文件删除

find /opt/file/date +%Y%m%d -name "_" -exec rm -rf {} ;

或find /opt/file/date +%Y%m%d -type f -exec rm -f {} ;

或find /opt/file/date +%Y%m%d -name ‘[a_zA_Z]_*’-type f -exec rm -rf {} ;

5.查找/var/log/目录下,大小在4k以上的文件复制到以下目录内/opt/file/年月日

find /var/log -size +4k -exec cp -rf {} /opt/file/date +%Y%m%d ;

6.并将/opt/file/年月日目录打包为tar.gz格式,名称为:年月日时分秒_log.tar.gz

tar czvf date +%Y%m%d%H%M%S _log.tar.gz date +%Y%m%d

备注:openssl rand -base64 40 | tr -d '/' | cut -c 1-20

生成40字节的随机字符,以Base64编码的形式输出(加密) | 去掉字符 ‘/’ | 截取其中1-20字节

四、实战练习4

使用for循环和linux命令完成如下效果:

1.创建目录/opt/for/年月日,如/opt/for/20230613.

mkdir -p /opt/for/date +%Y%m%d

2.在步骤1所创建的目录下,批量创建100文件,要求如下:

名称规则:前缀为大写A_随机字符(字母数字符号,长度20)编号.log将上述文件中写入内容,内容为当前时间戳.时间戳格式为年月日时分秒纳秒,例如:2023061442141686742951063662662

for i in {001..100}

do

echo $(date +%Y%m%d%H%M%S%N) > /opt/for/date +%Y%m%d/A$(openssl rand -base64 40 | tr -d '/' | cut -c 1-20)_${i}.log; 

done

备注:${i} 强制声明执行

3.并将/opt/for/年月日目录打包为tar.gz格式,名称为:年月日时分秒_log.tar.gz

cd /opt/for/

tar cvzf date +%Y%m%d%H%M%S_log.tar.gz date +%Y%m%d`

4.查找/opt/for/目录下,将上述步骤2生成的文件删除

find /opt/for -name "A_*" -exec rm -rf {} \;

[ -d /opt/for/$(date +%Y%m%d) ] || mkdir /opt/for/$(date +%Y%m%d) -p

for i in {001..100}

do s

echo $(date +%Y%m%d%H%M%S%N) > /opt/for/date +%Y%m%d/A_$(openssl rand -base64 40 | tr -d '/' | cut -c 1-20)_${i}.log;

done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值