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))

你可能感兴趣的:(笔记,linux,shell,find命令仅输出文件名)