如何计算今天创建的文件中的行数

时间:2010-05-07 14:44:34

标签: unix

好吧,我试图列出今天创建的文件数量,并计算这些文件中的行数。我必须在unix中进行。请建议如何为此编写脚本。

5 个答案:

答案 0 :(得分:2)

要查找行数:

find / -type f -ctime 0 -mtime 0 -print0 | xargs -0 wc -l

几乎你想要什么。在Unix中没有文件创建时间,这是文件状态更改时间和文件修改时间的近似值。

如果您只想在特定目录中搜​​索,请将/替换为/path/to/your/dir

查找文件数:

find / -type f -ctime 0 -mtime 0 | wc -l

答案 1 :(得分:0)

确定何时可靠地创建文件很难。 mtime是修改后的时间,ctime是改变inode数据的时间(例如,更改权限),atime是上次访问文件数据的时间。通常,mtime是创建时间的代名词;创建文件时,它会记录创建时间(ctime和atime也是如此),但如果文件随后被修改,则mtime会记录上次修改文件内容的时间。

find . -mtime -1 -print0 | xargs -0 wc -l

查找当前目录下的所有文件,修改时间少于24小时,并将名称发送到'wc -l' - 允许文件名中包含空格和其他奇数字符。

答案 2 :(得分:0)

这会在过去24小时内修改的-type f中找到文件(/path)(-mtime -1表示在过去1天内修改过)并运行wc -l来计算行数。 {}是文件名的占位符,+表示将所有文件名传递给wc的单个调用。

find /path -mtime -1 -type f -exec wc -l {} +

请注意,其他答案中建议的-ctime是更改时间,而不是创建时间。这是文件的所有者,组,链接计数,模式等最后一次更改。 Unix不跟踪文件的创建时间。

答案 3 :(得分:0)

find . -maxdepth 1 -daystart -ctime 0 -type f | xargs wc -l

如果需要深入了解,则需要更改maxdepth参数值。

答案 4 :(得分:0)

计算今天更改的文件数:

find . -daystart -type f -ctime -1 | wc -l

find查找最近创建的当前目录(-type f)*(.)中的所有文件(-ctime)(-) (1)自今天开始(-daystart)天。 wc计算-l输出中的行数(find)。

计算这些文件中的行:

find -daystart -type f -ctime -1 -print0 | wc -l --files0-from=-

第一部分是相同的,除了find使用空值(-print0)分隔文件名。 wc计算其标准输入(-l)上以空值分隔的文件(--files0-from=)中的行(-)。

* ctime实际上不是创建时间,而是上次更改文件状态的时间。我认为文件系统不会占用实际的创建时间。