小编l0b*_*0b0的帖子

Git 是否可以防止数据降级

我读到 ZFS 和 Btrfs 使用校验和来防止数据降级,并且我读到 Git 通过对每次提交的所有内容进行散列来实现完整性。

我打算在带有 Btrfs RAID 1 的 Linux NAS 上使用 Git 服务器进行存储,但是如果 Git 具有完整性,我想这不是必需的(至少如果我想要防止数据降级的话,则不需要)。

问题: 那么 Git 的完整性虽然在每次提交时对所有内容进行散列,但是否可以防止或帮助防止位腐烂?

git zfs btrfs data-integrity

41
推荐指数
2
解决办法
8069
查看次数

是否存在需要 rm -rf -no-preserve-root 的场景?

我在这里看到了一些问题,人们不小心做了rm -rf --no-preserve-rootrm -rf *,在他们做出反应之前擦除了大部分或全部文件系统。

是否有理由使用--no-preserve-root,无论是在正常使用中,作为开发人员还是作为管理员?

linux unix rm

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

如何在不使用额外磁盘空间的情况下在 Linux 上就地压缩文件?

我有一个 100GB 的驱动器,里面有一个 95GB 的文件。我需要释放驱动器上的一些空间(现在不能将文件从驱动器传输出来)。该文件将与压缩以及gzipbz2或什么,但所有这些程序写入的压缩文件到一个单独的文件。我没有足够的可用空间。

有没有办法使用标准压缩工具或其他 Unix 实用程序来压缩文件而不使用任何额外的磁盘空间(或至少是最少的额外磁盘空间)?我正在想象一次压缩文件的一部分并将结果直接写在文件上的东西。我意识到这会有风险,因为如果压缩中断,文件就会损坏,但我认为我别无选择。

linux compression

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

为什么 Puttygen 创建的文件隐藏在 Windows 7 资源管理器中?

在 Windows 7 家庭高级版中,在 C 驱动器根目录下的 PuTTY 密钥生成器(又名 Puttygen)中保存私钥后,它在资源管理器中不可见。

如何重现:

  1. 启动腻子。
  2. 生成密钥。
  3. 单击“保存私钥”(这也适用于“保存公钥”,但我只用它测试了原始情况)。
  4. 导航到C:
  5. 输入名称,例如id_rsa,将文件另存为C:\id_rsa.ppk.
  6. 启动资源管理器。
  7. 导航到C:

结果:没有id_rsa.ppk可见。

证明文件存在:

  1. 回到普蒂根。
  2. 再次单击“保存私钥”按钮。
  3. 导航到C:

在此窗口中,您可以与文件进行交互。我从那里检查了文件属性:

  • 它不是隐藏的。
  • 为我的用户检查“完全控制”。
  • “打开方式”奇怪地写着“Windows Shell Common Dll”。

附加信息:

  • 我昨天安装了 Windows,所以它不是索尼出没的怪物。
  • 它拥有所有最新的安全更新和 .NET 4.0。
  • 确实安装了 TortoiseGit 和 7zip 集成,因此可以想象它们与此有关(尽管 .ppk 文件不应与它们中的任何一个相关)。

确实使文件显示在资源管理器中的事情:

  • 将文件保存在另一个目录中,然后使用资源管理器将其复制/移动(两者都有效)到C:\. 我确实收到了“目标文件夹访问被拒绝”的请求,我必须先单击“继续”。
  • 将文件保存在另一个目录中并导航到那里。
  • 将文件保存在另一个磁盘的根目录(D:在本例中)并导航到那里。

未能使文件显示在资源管理器中的事情(F5在每次操作后点击资源管理器窗口中的刷新):

  • 将文件重命名为foo.ppk.
  • 以不同的名称保存了第二个副本。
  • 打开“显示隐藏的文件、文件夹和驱动器”。
  • 关闭“隐藏受保护的操作系统文件”。
  • 将文件保存在另一个目录中,然后将其复制到C:\ Puttygen …

ntfs windows-explorer putty

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

检查两个路径是否指向同一个文件

我有一个脚本可以在我的主目录中递归创建符号链接到我的设置目录,以保持文件处于版本控制之下。我希望它跳过已经通过父目录进行符号链接的文件。也就是说,如果我有这些文件/目录:

~/foo/ -> ~/settings/foo/
~/settings/foo/
~/settings/foo/bar
Run Code Online (Sandbox Code Playgroud)

, 我如何检查 ~/foo/bar 和 ~/settings/foo/bar 是同一个文件?

编辑:D'oh,又经过几分钟的搜索揭示了答案readlink -f $path

linux symbolic-link

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

如何解读华硕主板 LED 指示灯和蜂鸣声模式?

华硕主板上BIOS POST 之前不同 DRAM_LED、电源按钮和蜂鸣模式的规范含义是什么?我的手动和其他网络搜索在论坛中只找到了模糊的概念。

我的具体问题是在将 PSU(旧的没有死,但有电源按钮问题)更改为Corsair AX760并仅连接 CPU 和 24 针主板电缆后:

  • 我的ASUS P6X58D-E 主板上的电源按钮在开机时总是保持红色,
  • 粉丝开始,
  • DRAM_LED 保持点亮,并且
  • 扬声器发出令人心碎的连续哔哔声。

按 MemOK 后!按钮

  1. 电脑重新启动,
  2. 持续的哔哔声继续,并且
  3. DRAM_LED 亮 3 次然后熄灭。

我试过按 MemOK!带有各种内存配置的按钮(第 1、第 2 和第 3 个插槽),有时会闪烁 3 次,有时会闪烁两次,有时会闪烁一次。拥有所有这些的参考将非常有用。

如果我将任何其他电缆连接到 PSU(SATA、GPU),电源按钮会保持红色但不执行任何操作。也就是说,如果我按下它,则没有蜂鸣声、DRAM_LED 灯或风扇运行。

这应该不是电源问题,因为新 PSU 的瓦数比旧 PSU 高,并且运行相同的硬件。24+8主板+CPU接口都接好了。

更新:切换到随 PSU 提供的电缆后,我现在可以启动了。谁知道为什么?不幸的是,在此过程中,似乎一个 SSD 和一个 HDD 被灰尘短路炸毁了 - 如果我将电源插头连接到 HDD(我尝试了多条电缆),则未检测到 SSD 并且机器拒绝启动。无论如何,最初的问题仍然存在——你如何解释这些模式?

motherboard

7
推荐指数
1
解决办法
11万
查看次数

如何检查我的电脑是否支持 PCI Express

我试图在不打开盒子的情况下弄清楚我的系统是否支持 PCI Express。lspci 没有在任何地方提及“Express”或“PCI-e”,但 dmesg 报告说“PCI Express 热插拔控制器驱动程序”正在使用中。

linux pci-express

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

杀死 bash 进程“很好”

kill -9由于无用使用 Kill -9 form letter 中描述的原因,我试图避免。这个功能是否足够,或者我是否需要kill在超时后终止进程或处理其他微妙之处?

soft_kill()
{
    # Try to avoid forcing a kill
    # @param $1: PID
    kill $1 || kill -INT $1 || kill -HUP $1 || \
    (echo "Could not kill $1" >&2; kill -KILL $1)
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,这个函数的更好的名字是什么?现在的名字让我想起了《温柔地杀了我》,manslaughter听起来有点严厉。也许spoon_kill(谷歌它)?

linux kill

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

Gnome Seahorse 中的空证书是什么?

Seahorse的“默认信任”选项卡中,有几个名为“(null)”的个人证书,由“No name”颁发。他们的属性页上没有任何内容。这些是什么?它们可以安全删除吗?

海马截图

我像这样运行 GNOME Keyring Daemon

eval $(/usr/bin/gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh)
export GPG_AGENT_INFO SSH_AUTH_SOCK
Run Code Online (Sandbox Code Playgroud)

linux certificate arch-linux

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

Git重复提交

使用 简化 Git 分支的历史记录后git rebase -i,我在使用遥控器时遇到了一些麻烦:

$ git push remote-name branch-name
CONFLICT (add/add): Merge conflict in ...
error: failed to push some refs to 'ssh://...'
$ git pull remote-name branch-name
...
Automatic merge failed; fix conflicts and then commit the result.
$ git mergetool
$ git commit -m "Merge"
Run Code Online (Sandbox Code Playgroud)

现在分支的历史被搞砸了,在我第一次提交之前的某个看似随意的点之后,我的提交出现了两次(gitk 中的平行线)。我试过了git rebase -i,但现在它抱怨它“无法应用 123abc...”。如何摆脱并行提交?

git

4
推荐指数
1
解决办法
7281
查看次数