小编inf*_*ged的帖子

diff 仅显示已更改文件中的添加项

通常情况下diff,并git diff同时显示原始的和与修改后的行-+分别。有什么办法,我只能过滤才能看到修改后的行吗?这将立即将要读取的行数减少 2 倍。

我假设

git diff test.yml | grep '^+' | less -R
Run Code Online (Sandbox Code Playgroud)

git diff test.yml | egrep '^+' | less -R
Run Code Online (Sandbox Code Playgroud)

有相同的结果。即他们会在文件中显示任何新添加的内容。但是egrep向我展示了整个文件。为什么呢?

无论如何,使用上述方法,我失去了颜色。有什么办法可以保持颜色吗?

grep diff git

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

从外部硬盘错误中恢复数据

我正在尝试恢复硬盘。外置硬盘被识别出来了,Ubuntu中的Disks软件显示该磁盘是可以的,但是有一个坏道。是否可以恢复数据?我按照某些解决方案的建议尝试了 testdisk 和 photorec,但他们报告恢复取决于硬盘的正确大小

分道扬镳

Error: /dev/sdb: unrecognised disk label
Model: ST1000LM 035-1RK172 (scsi)                                         
Disk /dev/sdb: -512.00B
Ssector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags: 
Run Code Online (Sandbox Code Playgroud)

我想,由于报告的大小错误,所有恢复软件都不起作用。我附上了磁盘实用程序的屏幕截图。

在此处输入图片说明

当我尝试 ddrescue 时,错误是

sudo ddrescue /dev/sdb /home/user/copy.img
ddrescue: Input file is not seekable.
Run Code Online (Sandbox Code Playgroud)

目标是从硬盘恢复照片。

data-recovery

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

/sys/firmware/efi/efivars/ 中的 efi 变量条目

/sys/firmware/efi/efivars/ 中的条目是什么?

我看到它们是小的二进制文件。是这些地址和地址的内容吗?例如 /sys/firmware/efi/efivars/BootFromUSB-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9 十六进制显示

000000000: 0700 0000 00                             ....
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

uefi

5
推荐指数
1
解决办法
6834
查看次数

xargs 将多行视为单个命令调用的参数

我很难打印一个数字序列,然后在末尾添加一些内容。

seq 1 3 | xargs -I {} echo {} 4
Run Code Online (Sandbox Code Playgroud)

结果是

1 4
2 4
3 4
Run Code Online (Sandbox Code Playgroud)

不过我希望结果是

1 2 3 4
Run Code Online (Sandbox Code Playgroud)

由于我正在学习xargs,我只想用它xargs来实现这一目标。

bash xargs command

5
推荐指数
2
解决办法
2382
查看次数

了解linux内核中的include目录

谁能解释一下为什么头文件被分成 include 目录以及 arch 下?

如果我想链接我的源代码以包含头文件,我实际上应该从哪里获取它?

include/
Run Code Online (Sandbox Code Playgroud)

或者

arch/arm/
Run Code Online (Sandbox Code Playgroud)

我正在 ARM 主机上编写程序(不是交叉编译)

有人可以解释一下内核中头文件的结构吗?它们是如何传播的以及背后的逻辑?

source linux-kernel

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

将 root 更改为新硬盘分区会破坏 grub

我的根分区已打开/dev/sda1,我将根分区更改为/dev/sda2. /etc/fstab我使用 UUID更新了条目/dev/sda2

但是,我不确定,grub 如何知道根分区已更改为新的 UUID 即/dev/sda2?除了 之外,还应该在哪些地方进行更改/etc/fstab,以便 grub 可以找到根分区并引导系统?

因为,我想学习东西,所以我也想知道除了简单的命令 update-grub 之外的步骤。

我必须在其他地方改变一些东西吗?

我只是运行Linux。

grub

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

标签 统计

bash ×1

command ×1

data-recovery ×1

diff ×1

git ×1

grep ×1

grub ×1

linux-kernel ×1

source ×1

uefi ×1

xargs ×1