1.写一个bash脚本,找出目录\root\test中子目录下所有文件内容包含test的文件,并将此文件转移到已经存在的目录\root\export中
文件目录结构类似于
test
---1.txt
---2.txt
test1
---1.sql
---2.sql
test2
--1.log
--2.log
脚本如下:
#!/bin/bash find /root/test -type f > /root/3.txt file_path=$(cat /root/3.txt) for a in $file_path do result=$(cat $a|grep test) if [[ $result != ‘‘ ]] then echo $a cp $a /root/export fi done
find命令非常强大呀,使用find /root/test -type f 可以列出来所有的该路径下的文件(而不是文件夹哟)
整体思路就是:列出/root/test路径下的所有文件,这些文件包括文件路径,如下图:
将这些文件路径存入到/root下的3.txt文件中,遍历3.txt文件,使用cat /root/3.txt,cat $a|grep test 找出文件中包含test的内容,找到后将这些文件移动到/root/export路径下,也可以使用mv命令移动,cp类似于复制,mv类似于剪切