我正在编写一个bash脚本,该脚本在进程的某个部分应该列出超过1天的目录中的文件,并将列表打印到文本文件以便以后使用它。这是我当前的命令:
find . -mtime +0 > list.txt
此命令的问题在于它打印前面带有“./”的文件名,例如:
./file1
./file2
./file3
如何以这种方式仅打印文件名?
file1
file2
file3
答案 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