相关疑难解决方法(0)

列出程序访问的文件

time 如果您想弄清楚给定命令需要多少 CPU 时间,这是一个很棒的命令。

我正在寻找类似的东西,可以列出程序及其子项正在访问的文件。实时或事后报告。

目前我使用:

#!/bin/bash

strace -ff -e trace=file "$@" 2>&1 | perl -ne 's/^[^"]+"(([^\\"]|\\[\\"nt])*)".*/$1/ && print'
Run Code Online (Sandbox Code Playgroud)

但如果要运行的命令涉及sudo. 它不是很智能(如果它只能列出存在的文件或有权限问题的文件,或者将它们分组为读取的文件和写入的文件,那就太好了)。也strace很慢,所以选择更快的会更好。

monitoring files strace

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

如何在 64 位 Debian/Ubuntu 上运行 32 位程序?

我有一个 64 位(amd64 aka x86_64)Debian 或 Ubuntu 安装。我偶尔需要运行 32 位 (i386/i686) 程序,或者为 32 位系统编译程序。我怎样才能做到这一点,而不是大惊小怪?

奖励:如果我想使用较旧或较新版本的发行版运行或测试怎么办?

64bit ubuntu virtual-machine debian 32bit

76
推荐指数
3
解决办法
11万
查看次数

60
推荐指数
3
解决办法
4万
查看次数

是否有可能找出哪个程序或脚本创建了给定的文件?

我的主目录中突然出现了三个文件,分别是“client_state.xml”、“lockfile”和“time_stats_log”。最后两个是空的。我想知道他们是怎么到那里的。这不是第一次发生,但最后一次是几周前;我删除了文件,没有任何损坏或抱怨。我一直想不起来我在报道的时候在做什么stat $filename。有什么办法可以找出他们来自哪里?

或者,有没有办法监视主目录(但不是子目录)以创建文件?

monitoring files

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

我可以在私有目录下创建公共目录吗?

我在服务器上有一个权限为 700 的个人文件夹 /a/b。我不希望其他人列出 /a/b 中的内容。/a 的所有者是 root。

现在我需要向所有用户打开目录 /a/b/c 的完整权限。

我把/a/b/c的权限改成了777,但是其他人还是无法访问。

linux shell permissions directory

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

mount --bind 其他用户作为我自己

我正在使用 fstab 在我自己的一个目录中绑定属于另一个用户的文件夹。我知道我可以在安装 SSHFS 时映射用户,我一直在做一些研究,但找不到mount --bind等效的。

有什么办法可以将其他用户的文件夹和文件挂载为我自己的?

更新:它不一定必须是mount --bind。它只需要在映射用户时做一些类似的事情,并且可以在启动时完成。

mount bind-mount

19
推荐指数
1
解决办法
8643
查看次数

如何通过压缩档案递归 grep?

我试图找出use Test::Versioncpan 中有哪些模块。所以我习惯minicpan镜像它。我的问题是我需要遍历下载的档案,并 grep 档案中的文件。谁能告诉我我该怎么做?最好以一种方式告诉我存档中的哪个文件以及它在哪一行。

(注意:它们并非都是 tarball,有些是 zip 文件)

grep find zip archive recursive

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

findmnt 如何列出绑定安装?

很多人一直说 Linux 不保存有关绑定挂载的信息,因此无法获得它们及其来源的列表。这里有些例子:

  • 来自这里的评论之一:

    IIRC 此信息不会保存在任何地方:之后mount --bind,两个副本是等价的,没有一个比另一个更“原始”。毕竟,如果您已经卸载/mnt.

  • 来自本网站的回答:

    因此,记住哪些挂载是绑定挂载的唯一方法是将挂载命令的日志保留在/etc/mtab. 绑定安装操作由绑定安装选项指示(这会导致文件系统类型被忽略)。但是 mount 没有选项只列出使用一组特定选项安装的文件系统。

  • 来自Debian 错误报告:

    这是故意的。两个挂载点在所有方面都完全相同,因此内核不会保留任何标志来区分它们。

不过以上都是废话。该工具findmnt能够列出绑定安装的源路径(以 的形式device[source-path];我也试图让它仅列出源路径而不是设备)。如果 Linux 内核要维护一个绑定挂载,那么该信息必须存储在某个地方,否则它无法知道/home绑定到/users. 那么这些数据在哪里呢?它是否存储在 RAM 中的某个模糊区域?是否findmnt在/proc某处查看?

linux mount bind-mount

14
推荐指数
2
解决办法
5178
查看次数

Linux 上的联合挂载

甲联合安装呈现在单个层级的多个目录(分支)的组合视图。好的,但我如何在实践中使用一个,以及哪个?

许多联合挂载技术可用于现代 Linux 系统:OverlayFS、aufs、UnionFS、各种基于 FUSE 的文件系统……

给定一个用例,我如何决定哪些是合适的?特别是:

  • 在典型系统上哪些需要 root 访问权限?(换句话说,非特权用户可以创建联合挂载吗?)
  • 哪些可以安装/(当然有 root 访问权限)?
  • 哪些支持写入底层分支?(即,如果/foo和/bar联合安装到/union,我可以写信给/foo和/bar吗?)
  • 哪些支持可配置的写入策略?(例如,当两个分支上都存在文件时,即使我从分支 A 获取内容,我也可以将新创建​​的文件发送到分支 B 吗?)
  • 哪些支持依赖于文件的分支之间的优先级顺序?(例如,我可以在所有拥有它的分支中始终获得最新的文件吗?)

使用示例将不胜感激。

请避免专注于特定点的答案。我正在寻找查看可用软件的综合答案(类似于什么是绑定安装?)。好的答案将得到奖励。

linux filesystems union-mount

13
推荐指数
1
解决办法
5170
查看次数

什么是 NSFS 文件系统?

内核包含一个文件系统 nsfs。为每个已安装的 snapsnapd创建一个 nsfs 挂载/run/snapd/ns/<snapname>.mnt。ls将其显示为 0 字节文件。

内核源代码似乎不包含任何有关它的文档或注释。主要实现似乎在这里,头文件在这里。

由此看来,它似乎与命名空间有关。

对 repo 的搜索甚至找不到 Kconfig 条目来启用或禁用它...

这个文件系统的目的是什么,用来做什么?

linux filesystems namespace snap

13
推荐指数
2
解决办法
5828
查看次数