到目前为止我尝试了什么......
命令:
find . -type f -ctime -3 | tail -n 5
Run Code Online (Sandbox Code Playgroud)
结果:
./Mobilni Telefoni/01. Box Update/05. DC Unlocker Client/dc-unlocker_client-1.00.0857.exe
./Mobilni Telefoni/01. Box Update/39. Z3X Box/01. Update/01. Samsung Box/SamsungTool_12.4.exe
./Mobilni Telefoni/10. Nokia/1. SRPSKI HRVATSKI JEZICI/BB5/3xx_Series/Asha 300/06.97/rm781_06.97_ppm_d.rar
./GPS Navigacije/01. Garmin/03. Garmin Other/garmin_kgen_15.exe
./GPS Navigacije/01. Garmin/03. Garmin Other/test.txt
Run Code Online (Sandbox Code Playgroud)
这个输出没问题,如果我把时间跨度放宽,效果不好.(注意我使用-ctime而不是-mtime,因为几年前修改了一些上传的文件)
问题是文件可以每月上传一次,或者一年一次,我仍然需要获得10个最新文件,无论时间跨度如何.
如果无法完成,则tail仅限制输出,或者仅以某种方式获取指定的数字,而不会对大量文件产生巨大的性能影响.
通过在SO上使用来自一个答案的命令,我能够获取文件但是有些文件丢失了......
find . -type f -printf '%T@ %p\n' | sort -n | tail -10 | cut -f2- -d" "
Run Code Online (Sandbox Code Playgroud)
结果:
./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2330/E2330_OXFKE2.rar
./Mobilni …Run Code Online (Sandbox Code Playgroud) 我需要一个创建脚本的解决方案,以便在达到特定大小后重新创建(具有相同名称)的日志文件.
使用" tail -f"会导致在重新创建/旋转文件时停止拖尾.
我想要做的是创建一个脚本来拖尾文件,然后在它达到100行之后,然后重新启动命令...或者甚至更好地在重新创建文件时重新启动命令?
可能吗?
我已经能够追踪基本的头/尾功能:
head -10 myfile <==> cat myfile | select -first 10
tail -10 myfile <==> cat myfile | select -last 10
Run Code Online (Sandbox Code Playgroud)
但是如果我想列出除前三个以外的所有行或除前三个之外的所有行,你怎么做?在Unix中,我可以做"head -n-3"或"tail -n + 4".对于PowerShell应该如何做这一点并不明显.
tail logs/development.logXFCE终端输出:

multitail log/development.log
Run Code Online (Sandbox Code Playgroud)

Rails会自动将转义码添加到日志文件中.见development.log文件:
^[[1m^[[36m (84.1ms)^[[0m ^[[1mCREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) ^[[0m
^[[1m^[[35m (92.6ms)^[[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
^[[1m^[[36m (0.2ms)^[[0m ^[[1mSELECT version FROM "schema_migrations"^[[0m
^[[1m^[[35m (159.3ms)^[[0m INSERT INTO "schema_migrations" (version) VALUES ('20130327221553')
^[[1m^[[36m (59.9ms)^[[0m ^[[1mINSERT INTO "schema_migrations" (version) VALUES ('20130326152730')^[[0m
^[[1m^[[35m (59.8ms)^[[0m INSERT INTO "schema_migrations" (version) VALUES ('20130327173637')
Run Code Online (Sandbox Code Playgroud)
multitail -c 产生不可用的输出.

如何在不编写自己的配色方案的情况下为Multitail中的日志着色?
如何使尾部仅显示具有特定文本的行?如果搜索条件可以是正则表达式,那就更好了.我需要这样的东西:tail -f mylogfile.log showOnlyLinesWith "error: "
我正在运行Darwin(Mac OS X),而且我在bash中完全是初学者.
- 非常感谢advace
我需要在Windows 7中检索最后n行巨大文件(1-4 Gb).由于公司限制,我无法运行任何非内置命令.问题是我找到的所有解决方案似乎都读取整个文件,所以它们非常慢.
这可以快速完成吗?
笔记:
这里的解决方案Windows Powershell中的Unix tail等效命令不起作用.使用-wait不会让它变快.我没有-tail(我不知道它是否会起作用).
PS:有相当的几个相关问题head及tail,但不能集中在速度的问题.因此,有用或可接受的答案在这里可能没用.例如,
https://superuser.com/questions/859870/windows-equivalent-of-the-head-c-command
kubectl logs -f pod显示从头开始的所有日志,当日志很大时它会成为问题,我们必须等待几分钟才能获得最后一个日志.从远程连接时,它变得更加糟糕.有没有办法可以为最后100行日志留下日志并跟踪它们?
如何获取List的最后一个元素的值?我注意到List.hd(或.Head)返回一个项目,而List.tl(或.Tail)返回一个List.
转发列表并获得高清唯一的方法吗?谢谢.
我想问一下像==> *.sh <==.但它不起作用,我可以尽一切努力,.sh <==但不能让外卡工作.
这里的诀窍是什么?
在我的Scala应用程序中,我有一个函数调用一个返回Future [T]类型结果的函数.我需要在递归函数调用中传递映射结果.我希望这是尾递归,但地图(或flatMap)打破了这样做的能力.我收到错误"递归调用不在尾部位置."
以下是此方案的一个简单示例.如何修改它以便调用尾部递归(不用Await.result()来破坏Futures的好处)?
import scala.annotation.tailrec
import scala.concurrent.{Await, Future}
import scala.concurrent.duration._
implicit val ec = scala.concurrent.ExecutionContext.global
object FactorialCalc {
def factorial(n: Int): Future[Int] = {
@tailrec
def factorialAcc(acc: Int, n: Int): Future[Int] = {
if (n <= 1) {
Future.successful(acc)
} else {
val fNum = getFutureNumber(n)
fNum.flatMap(num => factorialAcc(num * acc, num - 1))
}
}
factorialAcc(1, n)
}
protected def getFutureNumber(n: Int) : Future[Int] = Future.successful(n)
}
Await.result(FactorialCalc.factorial(4), 5.seconds)
Run Code Online (Sandbox Code Playgroud) tail ×10
linux ×2
powershell ×2
ansi-escape ×1
awk ×1
bash ×1
batch-file ×1
colors ×1
dictionary ×1
f# ×1
file ×1
find ×1
future ×1
grep ×1
kubectl ×1
kubernetes ×1
list ×1
recursion ×1
reverse ×1
scala ×1
sed ×1
shell ×1
unix ×1
unix-head ×1
windows ×1