有时您比 Windows 更清楚哪些文件将在以后重新使用。假设您有 8GB 内存,并且您每小时在 I/O 绑定应用程序中使用相同的 1GB 文件(如果文件被缓存,则需要 1 秒才能完成,否则需要 1 分钟。)现在您处理其他一些 16GB不会被重复使用的数据。自然而然,经常使用的 1GB 文件将被推出缓存。如果可以告诉 Windows 将 1GB 文件保留在内存中,那将是有益的。(更好的是,如果有人可以告诉 Windows 不要缓存这 16GB 的数据,那就太好了,但我对这可以做到并不乐观。)
网络共享中的文件情况更糟:即使有可用内存,Windows 也会从缓存中删除文件。如果你立即重新使用一个文件,它仍然会在缓存中;但是如果关闭文件并等待 30 秒,缓存就会消失,系统将需要从远程服务器重新获取文件。对我来说,这是非常明显的,因为我使用的是 3 Mbps 的网络链接,并且我处理的文件大小约为 10 MB。
将文件保存在缓存中的穷人的方法是继续读取文件。有没有更好的方法?你知道有什么程序可以做到这一点吗?
(如果这可以在 Linux 下轻松完成,也请告诉我。)
如何使用官方控制台 rar 客户端在 Linux 中创建多部分 rar 文件?
RAR 3.90 Copyright (c) 1993-2009 Alexander Roshal 16 Aug 2009
Shareware version Type RAR -? for help
Run Code Online (Sandbox Code Playgroud)
我想要一个多部分 rar,每个部分大小为 150 MB。
我刚刚发现了 Enso Launcher,它似乎是我一直梦寐以求的工具(甚至试图自己制作其功能的一部分)。
但现在看来,它已经死了,社区Enso只是Enso 1.0的一个分支,并没有Enso 2.0的功能。
是否有任何维护的后继或替代方案,允许通过用自定义语言编写的命令扩展自己?
我必须使用 Windows 搜索索引相当多的数据,所以我想估计索引大小。我已经索引了一个数据子集(大约 60GB;13e6 页的文本数据,每页大约 4-5KB)。
该索引已增长到大约 78GB,因此它现在占用的空间比数据本身还多。这些结果与我在这里读到的内容相矛盾:
索引的平均大小大约是被索引的所有内容大小的 10%。
这是索引的预期大小吗?可以做些什么来减少它?
问题:
如何在 LibreOffice 的同一行中应用两种样式?
主要问题是我需要两种不同的样式:
例子:
表名 - 作者:约翰
在索引中,我只想要“table_name”。作者应该不会出现在索引中。
我在网络共享上有一堆文件夹,其中包含数千个文件(应用程序日志文件)。我希望能够快速并最终以编程方式(可能通过 MSIDXS)按文件名搜索这些文件。
问题是我似乎无法向索引服务添加网络共享。当我尝试向索引服务添加新目录时,我唯一可以添加的是 C:\ 驱动器下的文件夹。任何带有 \\share\whatever\ 的东西都是“无效的”。我也不能添加已映射到网络共享的驱动器。当我尝试时,它说“目录名称或位置无效”。
有没有办法为索引搜索索引网络共享?我有哪些有效搜索网络共享的选项?
FWIW,我正在处理 Windows XP。
我还尝试在 Microsoft 网络上安装Add-in for Files - 仍然是同样的问题。
这是发生的事情:

每当我尝试 UNC 文件路径时,都会收到此错误:

如果我有一个以冒号分隔的路径列表,很像 $PATH,但不一定是 $PATH。
我想在该列表中搜索特定文件名。但是,我只想要第一个匹配的路径。
我已经考虑过以下 linux 命令:
which: 仅适用于二进制文件,并且仅适用于 $PATH 变量whereis: 适用于特定类型的文件,并且仅适用于 $PATH 变量find: 不支持以冒号分隔的路径列表,并返回多个结果以下是我尝试过的一些事情:
我尝试whereis通过以下策略使用
env WHEREIS="`which whereis`" PATH="$MY_PATH_LIST" $WHEREIS "$TARGET_FILE"
Run Code Online (Sandbox Code Playgroud)
这几乎有效。但是,它似乎不会返回任意文件类型的结果。它还以笨拙的格式返回多个结果。
我可以which上班
env WHICH="`which which`" PATH="$MY_PATH_LIST" $WHICH "$MY_TARGET_FILE"
Run Code Online (Sandbox Code Playgroud)
如果有一个命令行选项来强制它允许非可执行文件。
然后我尝试用find. 首先我使用正则表达式来扩展路径列表(我用空格替换冒号)。然后我调用find,它工作正常。但是,它会搜索所有路径。如果找到好的结果,我似乎无法找到一种方法来告诉它提前停止搜索。
我确实得到了这个工作
find ${MY_PATH_LIST//[:]/ } -name "$MY_TARGET_FILE" | head -n 1
Run Code Online (Sandbox Code Playgroud)
但需要很长时间才能完成,因为find仍在进行详尽的搜索。
我需要它更快地执行(在第一个结果时退出),因为它将使用不同的参数运行多次。
有没有人有更好的解决方案建议?
请注意,如果一切都失败了,我可以编写一个非 bash 解决方案。现在写我希望使用现有工具有一个简单的解决方案。
我有一个基于参数生成的文件,它具有以下内容。
2012-12-31
2012-12-30
2012-12-29
Run Code Online (Sandbox Code Playgroud)
现在,这些实际上是用于 hive 查询的日期分区。所以,我想在我的 hive 查询中使用它们,我在WHERE子句中指定这些分区中的每一个。像下面这样
WHERE log_date IN ('2012-12-31','2012-12-30', '2012-12-29')
Run Code Online (Sandbox Code Playgroud)
所以,我期待从输出paste为
2012-12-31','2012-12-30','2012-12-29
Run Code Online (Sandbox Code Playgroud)
我正在使用以下内容,但我认为该-d参数是一个分隔符列表,而不是一个完整的分隔符。
paste -sd"','" datefile
Run Code Online (Sandbox Code Playgroud)
知道我该怎么做吗?
我是一家小型企业(120 名员工)的系统管理员,我正在寻找一种简单的方法来将办公室中的所有计算机重命名为更统一的命名约定。
我曾尝试在命令提示符中使用“netdom renamecomputer”行,但这似乎根本不起作用。可能是因为不在组策略上。我们使用 WORKGROUP 设置我们的计算机,然后让我们的员工使用远程桌面连接连接到工作服务器。
是否有我可以下载的 Powershell 工具或程序来帮助我重命名网络中的所有计算机?
PS 我们主要有 Win7 机器,但最近我们增加了大约 20 台 Win8 机器(以防万一)
我在 Acer Aspire 771 上安装了一个新的硬盘驱动器。我制作了一个 USB 恢复棒以及在以前的 HD 上运行的 Windows 8 64 位恢复 CD(它已损坏,因此无法进行克隆)。
经过两天的挣扎,我设法开始恢复,但它在大约 80% 的加载时中止。和以前一样,系统没有启动,只有恢复磁盘可以帮助我获得命令提示符(所有其他修复选项都失败)。
我尝试重新创建 BCD,执行以下操作:
select vol 2 --> EFI
assign --> resulted in F: drive
select vol 3 --> Windows8_OS drive (471 GB)
assign --> resulted in G: drive
exit
cd /d F:\EFI\Microsoft\Boot\
bootrec /fixboot
ren BCD BCD.bak
bcdboot G:\Windows /l en-us /s f: /f ALL
Run Code Online (Sandbox Code Playgroud)
无济于事,导致上述错误消息
我也试过:
BOOTREC /FIXMBR
BOOTREC /FIXBOOT
BOOTREC /REBUILDBCD
Run Code Online (Sandbox Code Playgroud)
没有成功。
我开始有点绝望了……
感谢您的任何建议。
linux ×3
command-line ×2
windows ×2
windows-8 ×2
bcd ×1
boot ×1
bootloader ×1
cache ×1
development ×1
find ×1
installation ×1
launcher ×1
memory ×1
paste ×1
powershell ×1
rar ×1
shell ×1
software-rec ×1
styles ×1
superfetch ×1
unix ×1
which ×1
windows-7 ×1
windows-xp ×1