小编Fah*_*tha的帖子

压缩当前目录中的所有内容

我想在 Ubuntu 上将所有内容(包括当前目录中的文件和文件夹)压缩并打包到一个 ZIP 文件中。

对此最方便的命令是什么(以及需要安装的工具的名称,如果有的话)?

编辑:如果我需要排除一个文件夹或多个文件怎么办?

packaging ubuntu zip compression

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

Cron 与 systemd 计时器

最近有人向我指出,存在 cron 的替代方案,即 systemd 计时器。

但是,我对 systemd 或 systemd 计时器一无所知。我只用过 cron。

Arch Wiki 中有一些讨论。但是,我正在寻找cronsystemd 计时器和 systemd 计时器之间的详细比较,重点是利弊。我使用 Debian,但我想对所有提供这两种替代方案的系统进行一般比较。该集合可能仅包括 Linux 发行版。

这是我所知道的。

Cron 非常古老,可以追溯到 1970 年代后期。cron 的原作者是 Unix 的创造者 Ken Thompson。Vixie cron 可追溯到 1987 年,现代 Linux 发行版中的 cron 是其中的直系后代。

Systemd 更新很多,也有些争议。维基百科告诉我它的初始版本是 2010 年 3 月 30 日。

因此,我目前的 cron 相对于 systemd 计时器的优势列表是:

  1. Cron 保证可以在任何类 Unix 系统中使用,因为它是一个可安装的受支持软件。这不会改变。相比之下,systemd 将来可能会或可能不会保留在 Linux 发行版中。它主要是一个 init 系统,可能会被不同的 init 系统取代。

  2. Cron 使用起来很简单。绝对比 systemd 计时器简单。

systemd 计时器相对于 cron 的相应优势列表是:

  1. Systemd 计时器可能更灵活,功能更强大。但我想要这样的例子。

因此,总而言之,以下是一些最好在答案中看到的内容:

  1. cron 与 …

cron systemd-timer

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

设置 /proc/sys/vm/drop_caches 以清除缓存

作为进行一些冷缓存计时的一部分,我正在尝试释放操作系统缓存。该内核文档(检索2019日)说:

drop_caches

Writing to this will cause the kernel to drop clean caches, as well as
reclaimable slab objects like dentries and inodes.  Once dropped, their
memory becomes free.

To free pagecache:
    echo 1 > /proc/sys/vm/drop_caches
To free reclaimable slab objects (includes dentries and inodes):
    echo 2 > /proc/sys/vm/drop_caches
To free slab objects and pagecache:
    echo 3 > /proc/sys/vm/drop_caches

This is a non-destructive operation and will not free any dirty objects.
To increase the number of objects freed …
Run Code Online (Sandbox Code Playgroud)

linux virtual-memory

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

如何遍历文件的行?

说我有这个文件:

hello
world
hello world
Run Code Online (Sandbox Code Playgroud)

这个程序

#!/bin/bash

for i in $(cat $1); do
    echo "tester: $i"
done
Run Code Online (Sandbox Code Playgroud)

产出

tester: hello
tester: world
tester: hello
tester: world
Run Code Online (Sandbox Code Playgroud)

我希望for对每一行进行迭代,分别忽略空格,即最后两行应替换为

tester: hello world
Run Code Online (Sandbox Code Playgroud)

使用引号for i in "$(cat $1)";会立即i分配整个文件。我应该改变什么?

shell control-flow

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

使用 LVM 进行 RAID 与 MDRAID - 优缺点?

他对“混合突袭类型”问题的回答中,HBruijn 建议使用 LVM 来实现 RAID,而不是更标准的 MDRAID。

经过一番调查,LVM 似乎也支持 RAID 功能。过去,我在 MDRAID 之上使用 LVM,直到现在才知道 LVM 也支持 RAID 功能。这似乎是一个相对较新的发展,但我还没有确切地知道这是什么时候实施的。

因此,这些是在 Linux 上实现软件 RAID 的替代方法。这两种不同方法的优缺点是什么?我正在寻找两种方法之间的功能比较,以便人们可以决定哪种方法更适合他们。如果您在答案中包含您的数据,则基于实验的结论(例如,此功能不如此功能好用,这就是原因)也可以。

要解决的一些具体问题:

  1. 假设我想做 sw RAID + LVM(一个常见的场景)。我应该使用 LVM 对 sw RAID 的支持,从而使用一个实用程序而不是两个实用程序吗?这种更集成的方法有什么优势吗?
  2. LVMs 对 sw RAID 的支持与更成熟的 MDADM 相比是否有明显的不足?具体来说,LVM 对 sw RAID 的支持有多稳定/无错误?这种支持似乎只能追溯到 2011 年(见下文),而 MDADM 则要老得多。另外,它在功能集方面如何比较?与 MDADM 相比,它是否有明显的功能缺陷?相反,它是否支持 MDADM 没有的任何 sw RAID 功能?

笔记:

  1. http://www.olearycomputers.com/ll/linux_mirrors.html 上有详细的讨论, 但我不知道它的写作日期。

    Serverfault 上的类似问题:linux LVM mirror vs. MD mirror。不过这个问题是2010年问的,答案可能已经过时了。

  2. 2.02.87 版的变更日志条目 - 2011 年 8 月 12 …

raid software-raid lvm md

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

发现有关 PDF 的元数据

假设我有一个 PDF 并且我想获取该 PDF 可用的任何元数据。我应该使用什么实用程序?

我发现我通常最想知道的信息是纸张大小,这是 PDF 查看者通常不会报告的内容。例如,PDF 大小是 letter、legal、A4 还是其他尺寸?但其他可用信息也可能令人感兴趣。

pdf file-metadata

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

为什么 Linux 内核策略永远不会破坏用户空间?

我开始在 Linux 内核邮件列表上的礼仪上下文中考虑这个问题。作为世界上最著名、可以说是最成功和最重要的自由软件项目,Linux 内核受到了很多媒体的关注。项目创始人兼领导者 Linus Torvalds 在这里显然不需要介绍。

Linus 偶尔会因为他在 LKML 上的火爆而引起争议。他自己承认,这些火焰经常与破坏用户空间有关。这让我想到了我的问题。

我可以从历史的角度来解释为什么破坏用户空间是一件坏事吗?据我了解,破坏用户空间需要在应用程序级别进行修复,但如果它改进了内核代码,这是一件坏事吗?

据我了解,Linus 声明的政策是不破坏用户空间胜过其他一切,包括代码质量。为什么这如此重要,这种政策的利弊是什么?

(这种一贯适用的政策显然有一些缺点,因为 Linus 偶尔会与他在 LKML 上的高级副手在这个话题上发生“分歧”。据我所知,他在这件事上总是有自己的方式。)

history linux-kernel

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

bash 多行命令在连续字符后带有注释

考虑

echo \ # this is a comment
foo
Run Code Online (Sandbox Code Playgroud)

这给出:

$ sh foo.sh
 # this is a comment
foo.sh: line 2: foo: command not found
Run Code Online (Sandbox Code Playgroud)

在网上搜索后,我在姊妹网站 Stack Overflow 上找到了DigitalRoss解决方案。所以一个人可以做

echo `: this is a comment` \
foo
Run Code Online (Sandbox Code Playgroud)

或者

echo $(: this is a comment) \
foo
Run Code Online (Sandbox Code Playgroud)

但是,DigitalRoss 没有解释为什么这些解决方案有效。我很感激解释。他回复了一条评论:

曾经有一个 shellgoto命令分支到指定的标签,如:这里。该goto走了,但你仍然可以使用的 : whatever语法...:是一种解析的评论了。

但我想要更多细节和上下文,包括对可移植性的讨论。

当然,如果有人有其他解决方案,那也很好。

另请参阅较早的问题如何在 shell 脚本中注释多行命令?.


从下面的讨论中获取信息。这`: this is a comment`只是一个命令替换。的输出: …

shell bash

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

尝试解压缩文件时出错:“需要 PK 兼容。v6.1(可以执行 v4.6)”

我从银行收到了一个 zip 文件。尝试解压缩时出现以下错误。

unzip filename.zip 
Archive:  filename.zip
   skipping: SOME_STUFF.pdf  need PK compat. v6.1 (can do v4.6)
Run Code Online (Sandbox Code Playgroud)

file命令返回

Zip archive data
Run Code Online (Sandbox Code Playgroud)

对于这个文件。

有相当多的线程包含此错误消息,但他们唯一的具体建议是使用7z x7za xp7zip-full包中。这些失败并出现错误:

Unsupported Method

Sub items Errors: 1
Run Code Online (Sandbox Code Playgroud)

我正在使用 Debian wheezy amd64。不过,我在测试/不稳定中没有看到unzip7za包的重大更新。

我很感激有关如何解压缩此文件的建议,更一般地说,错误消息PK compat. v6.1 (can do v4.6)是什么意思?对于广泛使用的实用程序,zip没有太多可用的文档。Debian 源代码中的 README 指向http://www.info-zip.org/pub/infozip/,其中列出了 2009 年 4 月 29 日发布的 UnZip 6.0。

这是unzip我系统上二进制文件的版本输出。

unzip -v
UnZip 6.00 of 20 April 2009, …
Run Code Online (Sandbox Code Playgroud)

zip

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

如何安装比 Debian 提供的软件更新的软件版本?

假设我想要一个比当前操作系统版本可用的软件版本更新的软件,我该怎么办?

需要考虑的情况:

  1. 有适用于该操作系统版本的附加软件包的半官方/官方来源。例如,Debian 的 backports.org 或 Ubuntu 的 PPA。
  2. 没有可用于该操作系统版本的更新版本的软件包,但有更新版本可用于更新版本的操作系统。这是向后移植的标准情况。
  3. 没有可用的更新版本软件的打包版本。可用的选项是打包更新的版本。

Per让我们编译一份规范问答列表,这是为以下内容提供规范答案的地方。答案应该是社区维基。

debian apt backports

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