Linux Shell find命令只输出文件名字,不携带路径

    如果只用find命令,不借助‘grep’或‘awk’命令,find命令是否可以实现仅输出文件名字呢?

   有人说用‘ls -1’就可以,确实,在普通的应用场合,用‘ls’这个命令足以。但是,find携带了更多的控制项,例如,大小-size、修改时间-cmin等,如果在满足搜索条件时,仅输出文件名,而非带路径输出,该如何做呢?

    一开始并没有直接想出来,后来搜索网上文章,有些提到的,也是继续使用其他shell命令,例如,‘grep’或‘awk’。总感觉不够理想、不够直接、不够原生,还是看看man帮助吧!

     后来发现,仅用‘find’命令,加上'-printf'控制项就可以达到目的,它也足够原生!

# 用'ls'命令仅列出文件名

ls -1

# 用'find'命令仅列出文件名,注意单引号是必须的

find /path/to/getfilenames -name '*.tar' -printf '%f\n'

# 利用*nix体系行操作的特点,可以将命令输出装入shell数组

filenames=($(ls -1))

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值