小编rur*_*uni的帖子

查找不在列表中的文件

我有一个文件列表file.lst.现在我想查找目录dir中超过7天的所有文件,除了file.lst文件中的文件.如何修改find​​命令或file.lst从结果中删除所有条目?

例:

file.lst:

a
b
c
Run Code Online (Sandbox Code Playgroud)

执行:

find -mtime +7 -print > found.lst
Run Code Online (Sandbox Code Playgroud)

found.lst:

a
d
e
Run Code Online (Sandbox Code Playgroud)

所以我的期望是:

d
e
Run Code Online (Sandbox Code Playgroud)

linux bash diff command-line find

18
推荐指数
1
解决办法
7002
查看次数

截断内存映射文件

我正在使用内存映射IO作为索引文件,但问题是如果文件大部分为空,我无法调整文件大小.

之前的某个地方:

MappedByteBuffer map = raf.getChannel().map(MapMode.READ_WRITE, 0, 1 << 30);
raf.close();
// use map
map.force();
map = null;
Run Code Online (Sandbox Code Playgroud)

调整:

for (int c = 0; c < 100; c++) {
    RandomAccessFile raf = new RandomAccessFile(indexFile, "rw");
    try {
        raf.setLength(newLen);
        if (c > 0) LOG.warn("used " + c + " iterations to close mapped byte buffer");
        return;
    } catch (Exception e) {
        System.gc();
        Thread.sleep(10);
        System.runFinalization();
        Thread.sleep(10);
    } finally {
        raf.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

当使用Windows或Linux 32位时,我经常遇到解映问题,但在64位Linux生产环境中,一切似乎都没有警告,但文件保持原始大小.

任何人都可以解释为什么会发生这种情况和/或如何解决问题?

java linux io memory-management memory-mapped-files

12
推荐指数
1
解决办法
2492
查看次数

如何使文件稀疏?

如果我有一个包含许多零的大文件,我怎样才能有效地使它成为稀疏文件?

唯一的可能是读取整个文件(包括可能存储稀疏的所有零)并使用seek跳过零区域将其重写为新文件?

或者是否有可能在现有文件中进行此操作(例如File.setSparse(long start,long end))?

我正在寻找Java或某些Linux命令的解决方案,Filesystem将是ext3或类似的.

java linux file sparse-file

8
推荐指数
2
解决办法
1680
查看次数

在平板电脑上自动更新Android应用程序(即没有市场!)

我编写了一个Android应用程序,主要针对没有安装Market的Android平板电脑,这意味着用户无法轻松更新应用程序.我的想法是下载apk文件,并做任何MArket正在做的apk文件.

由于应用程序已预先安装在平板电脑上,因此权限没有限制,但设备不得植根.

java installer android

2
推荐指数
1
解决办法
2321
查看次数