标签: stat

如何在Perl中获得符号链接的高分辨率mtime?

我想重现ls --full-timePerl脚本的输出,以避免调用ls数千次的开销.我希望使用stat函数并从那里获取所有信息.但是,ls输出中的时间戳使用高分辨率时钟,因此它也包括纳秒数(根据GNU文档,这是因为--full-time相当于--format=long --time-style=full-iso,并且完全iso时间样式包括纳秒).

我遇到了Time :: HiRes模块,该模块覆盖标准stat函数,其中一个返回atime/mtime/ctime作为浮点数,但是没有覆盖lstat.这是一个问题,因为在符号链接上调用stat会返回链接文件的信息,而不是链接本身的信息.

所以我的问题是 - 我在哪里可以找到一个版本的lstat以与Time :: HiRes :: stat相同的方式返回atime/mtime/ctime?如果失败了,是否有另一种方法可以以高分辨率获取符号链接的modtime(除了调用ls).

perl symlink high-resolution stat

9
推荐指数
1
解决办法
847
查看次数

Mac OS X如何知道哪些程序正在使用已安装的文件系统?

这可能听起来像一个愚蠢的问题,但直到最近,如果你试图卸载正在使用的卷,Finder报告它正在使用,但不是由谁.这是简单的Unix功能,如果文件在挂载点上打开,则不允许它弹出.但是现在他们似乎添加了一些功能,让用户知道当前正在使用已安装系统的程序,我一直在查看Unix的操作系统(Linux发行版)的fopen,stat等手册页,我可以似乎找不到类似的功能.

这个功能是专门的,还是我只是在错误的地方?

macos stat osx-snow-leopard unmount

9
推荐指数
1
解决办法
844
查看次数

如何在Python中使用mv命令和子进程

我在/ home/somedir/subdir /中有很多文件,我试图以编程方式将它们全部移动到/ home/somedir.

现在我有这个:

subprocess.call(["mv", "/home/somedir/subdir/*", "somedir/"])
Run Code Online (Sandbox Code Playgroud)

但它给了我这个错误:

mv: cannot stat `/home/somedir/subdir/*': No such file or directory
Run Code Online (Sandbox Code Playgroud)

我知道它确实存在,因为当我使用与脚本使用的完全相同的命令手动键入mv命令时,它可以完美地工作.

python unix subprocess mv stat

9
推荐指数
1
解决办法
7866
查看次数

为什么文件权限在Python和bash中显示不同?

来自Python:

>>> import os
>>> s = os.stat( '/etc/termcap')
>>> print( oct(s.st_mode) )
**0o100444**
Run Code Online (Sandbox Code Playgroud)

当我查看Bash时:

$ stat -f "%p %N" /etc/termcap
**120755** /etc/termcap
Run Code Online (Sandbox Code Playgroud)

为什么这会返回不同的结果?

python bash shell command-line stat

9
推荐指数
1
解决办法
174
查看次数

perl6的stat函数

在perl6中是否有另一种方法来获取文件属性详细信息,如size,access_time,modified_time等,而无需调用本机调用?

根据文档,它" 不太可能像POSIX特定的那样被内置实现 ".

除了系统调用stat之外,还有哪些可用的解决方法?

任何想法或指针都非常感激.

谢谢.

stat perl6 file-attributes

9
推荐指数
1
解决办法
210
查看次数

readdir()返回文件名时,stat()错误'没有这样的文件或目录'

我无法识别stat抛出的错误.以下程序读取目录中的所有文件并打印文件名:

DIR *dp;
struct dirent *dirp;
struct stat sb;

if((dp = opendir(argv[1]))==NULL)
{
    perror("can't open dir");
}
while((dirp = readdir(dp))!=NULL)
{
    if (stat(dirp->d_name, &sb) == -1) {
        perror("stat");
    }   
    printf("File name:               %s \n",dirp->d_name);
}
Run Code Online (Sandbox Code Playgroud)

样本输出:

/home/eipe
stat error: No such file or directory
File name:               copyofsample 
File name:               a.out 
File name:               . 
stat error: No such file or directory
File name:               udpclient.c 
File name:               .. 
stat error: No such file or directory
File name:               client.c 
stat error: No such file …
Run Code Online (Sandbox Code Playgroud)

c unix stat

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

文件stat()vs access()来检查目录的权限

我已成功使用两个stat()&access()单独确定用户是否具有对目录的读取或读/写访问权限.

我的问题是: - 有一个首选的方法吗?我看到很多使用的例子stat,但就我的目的而言,访问似乎更轻量级并且有用.
- 是否有任何问题(例如 - 安全性)与其中一个? - 我的方法有什么问题吗?

这是一些伪代码(从内存重新创建w/o编译):

       // Using access():
    bool readAccessPermission = false; 
    bool writeAccessPermission = false;

    if (mode == 'r'){
            if (access(directory, R_OK) == 0)
                    readAccessPermission = true;                        
    }
    else{
            if (access(directory, R_OK && W_OK) == 0)
                    readAccessPermission = true;
                    writeAccessPermission = true;
    }


    // vs. using stat function
    // assume I already called stat(directory) and have the object


    bool readAccessPermission = false; 
    bool writeAccessPermission = false;

    var …
Run Code Online (Sandbox Code Playgroud)

c++ file-io stat

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

Windows和ctime/st_ctime

Windows是否提供类似POSIX stat的st_ctime字段,它给出了上次元数据更改的时间戳?

背景:我有一些数据文件,我想检查它们是否自特定时间戳以来被修改过.检查修改后的时间戳(mtime)很容易,并负责"正常"修改,但如果用户复制旧版本的数据文件,则修改后的时间戳将显示它们更旧.在POSIX系统上,复制旧文件会导致ctime更新,即使mtime更旧.

windows filesystems stat

8
推荐指数
1
解决办法
661
查看次数

使用fstat()和stat()有什么好处?

如果我有一个已知的文件描述符打开的文件,什么是使用的优点fstat(),对stat()?为什么不只有一个功能?

int fstat(int fildes, struct stat *buf)

int stat(const char *path, struct stat *buf)
Run Code Online (Sandbox Code Playgroud)

c file system-calls stat fstat

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

R:stat_smooth组(x轴)

我有一个数据库,想要使用stat_smooth显示一个数字.

我可以显示avg_time vs Scored_Probabilities数字,如下所示:

c <- ggplot(dataset1, aes(x=Avg.time, y=Scored.Probabilities))
c + stat_smooth()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是当将Avg.time更改为时间或Age时,会发生错误:

c <- ggplot(dataset1, aes(x=Age, y=Scored.Probabilities))
c + stat_smooth()
error: geom_smooth: Only one unique x value each group. Maybe you want aes(group = 1)?
Run Code Online (Sandbox Code Playgroud)

我该怎么办呢?

r smooth stat ggplot2

8
推荐指数
1
解决办法
6937
查看次数