我在一棵树上有数百万个文件。我将所有文件(不是目录)的完整路径(连同上次触摸的时间戳)从bash写入CSV文件的完整路径。我本来打算开始在Node.js中编写脚本,但这有点棘手,所以我想看看是否有一种方法可以利用bash中的管道传输/流传输来在短短的几行中完成此操作。
find dir -type f \
-name '*.html' \
-o -name '*.jpg' \
-o -name '*.json' \
-o -name '.png' \
-o -name '.gif' | \
get timestamp | \
write csv rows...
输出如下:
dir/some/file,<timestamp>
dir/some/file2,<timestamp>
...
是绝对路径还是相对路径都没关系。
答案 0 :(得分:2)
如果您有支持它的find
,只需使用find dir ... -printf '%p,%a\n'
如果没有,请尝试:
find dir ... -exec stat --format='%n,%x' {} +
我不知道您所说的“上次触及的时间戳”是什么意思,也许您想要使用mtime,但是上述每个给定时间。您可以使用%t和%y获得mtime。检查文档。
答案 1 :(得分:0)
find . -type f -name '*.html' -o -name '*.jpg' -o -name '*.json' -o -name '*.png' -o -name '*.gif' | xargs -I{} ls -l {} | awk '{OFS=","}{print $9 , $6" "$7" "$8 }' > output.csv
“。”找到当前目录后,您可以将其替换为目录路径