小编Fir*_*ord的帖子

如何提取boot.img?

我正在尝试boot.img从 Android 图像查看文件中的内容。

我用谷歌搜索并发现这篇文章可以提取system.img,但它不适用于boot.img. 尝试为 执行此操作时boot.img,它显示以下内容:

Invalid sparse file format at header magi
Failed to read sparse file
Run Code Online (Sandbox Code Playgroud)

simg2img仅用于提取system.img

  1. 如果是这样,还有其他方法可以提取boot.img吗?
  2. 如果没有,不提取有boot.img什么问题?

filesystems boot android

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

“其他”无法读取 /proc/PID/ 下具有 -r--r--r-- 权限的“smaps_rollup”文件。为什么?

我正在尝试读取两个特定文件,即statussmaps_rollup下的所有进程/proc。所有进程目录都有dr-xr-xr-x权限,我可以进入这些目录中的每一个。

对于所有进程,这两个文件的权限都是-r--r--r--.

这是奇怪的行为。假设我尝试读取 PID 1 的两个文件。我可以读取statusfile,但不能读取smaps_rollup. 见下文:

$ cd /proc/1

$ ls -l status smaps_rollup
-r--r--r-- 1 root root 0 Apr  5 18:34 smaps_rollup
-r--r--r-- 1 root root 0 Mar 21 12:18 status

$ grep "Swap:" status
VmSwap:     1072 kB

$ grep "Swap:" smaps_rollup
grep: smaps_rollup: Permission denied

$ cat smaps_rollup
cat: smaps_rollup: Permission denied
Run Code Online (Sandbox Code Playgroud)

我查找了相关问题并遇到了其中的一些问题[1][2][3][4]。他们都没有同样的问题。这些其他问题的解决方案必须修复目录上缺少的可执行权限。这里的情况并非如此。

这是 proc 的挂载信息:

proc on /proc type proc …
Run Code Online (Sandbox Code Playgroud)

permissions proc

6
推荐指数
1
解决办法
435
查看次数

当别名作为参数传递时防止别名扩展

我有两个别名:

alias rm='python my/rm/script.py '
alias docker='sudo docker '
Run Code Online (Sandbox Code Playgroud)

问题是,当运行该语句时,$ docker rm ARGS关键字rm被扩展为别名,并且 docker 抱怨'python' is not a docker command.

我寻找了几个解决方案。一种解决方案是使用command关键字。另一种是用于shopt切换别名扩展。我无法充分利用它们。

这两个都不适合我:

alias docker='shopt -u expand_aliases; sudo docker '
alias docker='command sudo docker '
Run Code Online (Sandbox Code Playgroud)

Unalias 的工作原理:

alias docker='unalias rm; sudo docker '
Run Code Online (Sandbox Code Playgroud)

unalias 的问题是,过了一段时间,我会忘记我的 rm 别名不再存在于正在运行的 shell 环境中,无论我的 docker 命令已被执行。因此,我rm在文件上使用时会立即删除它,而我的 python 脚本则充当安全网并将要删除的文件移动到垃圾箱中。我想避免陷入这种情况,即我错误地最终使用了 GNU rm 命令而不是我的 rm 别名,这就是我不想使用 unalias 的原因。

另一个解决方案是放弃 docker 别名。缺点是我必须sudo为我想要执行的每个有用的 docker 命令编写关键字。这是一件苦差事,我避免使用 docker 的别名。

另一种解决方案是转义 …

alias

3
推荐指数
1
解决办法
181
查看次数

如何使用终端将具有连续名称的文件重命名为另一个序列?

我有一个目录,其中包含名为“o1.ray”到“o293.ray”的文件。我想将它们移动到另一个目录,同时将它们重命名为“o132.ray”到“o424.ray”。

我如何在终端中执行此操作?

cd directory
for i in {1...293};
do cp o$i.ray subdirectory/o$i+131.ray;
done
Run Code Online (Sandbox Code Playgroud)

我知道这是错误的,因为我得到:

error message 'cp: cannot stat 'o{1...293}.ray': No such file or directory 
Run Code Online (Sandbox Code Playgroud)

bash file-management rename

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

标签 统计

alias ×1

android ×1

bash ×1

boot ×1

file-management ×1

filesystems ×1

permissions ×1

proc ×1

rename ×1