一、实战练习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