Files

查找命令:如何忽略路徑名?

  • December 6, 2020

我必須在一個目錄和它的子目錄中找到某種類型的文件,我只需要列印出文件名。所以這裡是主要命令:

find -type f -name "*.c"

現在,我如何從每個結果中截斷路徑?(它可能可以用 awk 完成,但我希望有更簡單的方法來做到這一點)。

GNU find 支持-printf謂詞,它支持%f輸出文件名的格式說明符。

find -type f -name "*.c" -printf '%f\n'

使用awk並不復雜:

find . -name '*.c' -type f | awk -F/ '{print $NF}'

或者sed

find . -name '*.c' -type f | LC_ALL=C sed 's|.*/||'

(假設文件路徑不包含換行符)並且適用於任何find實現。

zsh

print -rC1 -- **/*.c(N.:t)

引用自:https://unix.stackexchange.com/questions/76466