使用 find 列出某个目录下的所有文件

Ale*_*lex 10 command-line ls bash find

我正在尝试使用单行命令来查找命名的每个目录(或子目录)bin,然后打印其下所有文件的列表,但不会同时列出它们下的目录名称。

我尝试了几种不同的方法来实现这一点,但到目前为止都没有奏效:

  1. find ~ -type d -name "bin" -exec ls '{}' ';' | grep -v /

我对此进行了测试,它会列出文件,但也会列出任何 bin 下的目录。因此,如果我在bin目录下有一个bin子目录,如下所示:

~/home/
   ~/home/bin
      file1.txt
      ~/home/bin/bin
         file2.txt
Run Code Online (Sandbox Code Playgroud)

输出如下所示:

bin
file1.txt
file2.txt
Run Code Online (Sandbox Code Playgroud)
  1. find ~ -type d -name "bin" -exec ls -f '{}' ';'

我读到这样做ls -f只会列出文件,但不幸的是,这也列出了目录bin..并且.

那么我该怎么做呢?

mur*_*uru 13

使用-path,您可以尝试:

find ~ -path '*/bin/*' -type f
Run Code Online (Sandbox Code Playgroud)

这不会列出bin自己,所以要同时获得:

find ~ \( -path '*/bin/*' -type f \) -o \( -name bin -type d \)
Run Code Online (Sandbox Code Playgroud)