跳过“查找”输出中的字符

时间:2014-07-09 14:28:06

标签: linux bash

我正在编写一个bash脚本,该脚本在进程的某个部分应该列出超过1天的目录中的文件,并将列表打印到文本文件以便以后使用它。这是我当前的命令:

find . -mtime +0 > list.txt

此命令的问题在于它打印前面带有“./”的文件名,例如:

./file1
./file2
./file3

如何以这种方式仅打印文件名?

file1
file2
file3

2 个答案:

答案 0 :(得分:3)

使用basename

find . -mtime +0 -type f -exec basename {} \; > list.txt

-type f的原因是因为否则会打印搜索到的目录。

答案 1 :(得分:1)

如果find支持,则无需使用额外的二进制命令:

find . -mtime +0 -printf '%f\n' > list.txt

定位文件时,只需添加-type f

find . -mtime +0 -printf '%f\n' -type f > list.txt

或者如果您打算在指定目录中显示文件和目录:

find some_dir -mtime +0 -printf '%f\n' -mindepth 1 > list.txt