加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 找到一个特定的文件然后管道到stdout / awk

发布时间:2020-12-15 21:53:57 所属栏目:安全 来源:网络整理
导读:我正在寻找一种递归遍历目录以查找特定文件的方法,然后停止搜索并将文件名路径传递给awk函数或类似的东西. I asked a question earlier that was similar,但是在我以外的机器上进行测试后,发现locate命令不起作用,因为不是每个人都在他们的系统上使用它. 我
我正在寻找一种递归遍历目录以查找特定文件的方法,然后停止搜索并将文件名路径传递给awk函数或类似的东西. I asked a question earlier that was similar,但是在我以外的机器上进行测试后,发现locate命令不起作用,因为不是每个人都在他们的系统上使用它.

我与locate一起使用的代码:

dir="/path/to/destination/";
mkdir "$dir";
locate -l 1 target_file.txt | 
   awk -v dir="$dir" '{printf "cp "%s" "%s"n",$1,dir}' | 
   sh

解决方法

find(1)命令将执行此操作.要只获得一行,请使用head(1).

dir="/path/to/destination/";
mkdir "$dir";
find /path/location -name target_file.txt |
    head -n 1 |
    awk -v dir="$dir" '{printf "cp "%s" "%s"n",dir}' |
    sh

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读