How to strip leading "./" in unix "find"?

find . -type f -print

prints out

./file1
./file2
./file3

Any way to make it print

file1
file2
file3

?

71589 次浏览

如果他们只是在工作目录里

find * -type f -print

这就是你想要的吗?

用 sed

find . | sed "s|^\./||"

可以更短

find * -type f

只查找工作目录下的常规文件,并打印不带“ abc 0”前缀的文件:

find -type f -printf '%P\n'

来自 man find 的 -printf格式描述:

% P File 的名称,其中包含删除该文件的命令行参数的名称。

剥离 ./的另一种方法是使用 cut,比如:

find -type f | cut -c3-

进一步的解释可以找到 给你

剥离./的另一种方法

find * -type d -maxdepth 0

由于 -printf选项不能在 OSX find上使用,这里有一个命令可以在 OSX find 上使用,以防万一有人不想使用 brew等安装 gnu find:

find . -type f -execdir printf '%s\n' {} +