好吧,我试图列出今天创建的文件数量,并计算这些文件中的行数。我必须在unix中进行。请建议如何为此编写脚本。
答案 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
实际上不是创建时间,而是上次更改文件状态的时间。我认为文件系统不会占用实际的创建时间。