我想在 Ubuntu 上将所有内容(包括当前目录中的文件和文件夹)压缩并打包到一个 ZIP 文件中。
对此最方便的命令是什么(以及需要安装的工具的名称,如果有的话)?
编辑:如果我需要排除一个文件夹或多个文件怎么办?
最近有人向我指出,存在 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 计时器的优势列表是:
Cron 保证可以在任何类 Unix 系统中使用,因为它是一个可安装的受支持软件。这不会改变。相比之下,systemd 将来可能会或可能不会保留在 Linux 发行版中。它主要是一个 init 系统,可能会被不同的 init 系统取代。
Cron 使用起来很简单。绝对比 systemd 计时器简单。
systemd 计时器相对于 cron 的相应优势列表是:
因此,总而言之,以下是一些最好在答案中看到的内容:
作为进行一些冷缓存计时的一部分,我正在尝试释放操作系统缓存。该内核文档(检索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) 说我有这个文件:
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分配整个文件。我应该改变什么?
在他对“混合突袭类型”问题的回答中,HBruijn 建议使用 LVM 来实现 RAID,而不是更标准的 MDRAID。
经过一番调查,LVM 似乎也支持 RAID 功能。过去,我在 MDRAID 之上使用 LVM,直到现在才知道 LVM 也支持 RAID 功能。这似乎是一个相对较新的发展,但我还没有确切地知道这是什么时候实施的。
因此,这些是在 Linux 上实现软件 RAID 的替代方法。这两种不同方法的优缺点是什么?我正在寻找两种方法之间的功能比较,以便人们可以决定哪种方法更适合他们。如果您在答案中包含您的数据,则基于实验的结论(例如,此功能不如此功能好用,这就是原因)也可以。
要解决的一些具体问题:
笔记:
在http://www.olearycomputers.com/ll/linux_mirrors.html 上有详细的讨论, 但我不知道它的写作日期。
Serverfault 上的类似问题:linux LVM mirror vs. MD mirror。不过这个问题是2010年问的,答案可能已经过时了。
2.02.87 版的变更日志条目 - 2011 年 8 月 12 …
假设我有一个 PDF 并且我想获取该 PDF 可用的任何元数据。我应该使用什么实用程序?
我发现我通常最想知道的信息是纸张大小,这是 PDF 查看者通常不会报告的内容。例如,PDF 大小是 letter、legal、A4 还是其他尺寸?但其他可用信息也可能令人感兴趣。
我开始在 Linux 内核邮件列表上的礼仪上下文中考虑这个问题。作为世界上最著名、可以说是最成功和最重要的自由软件项目,Linux 内核受到了很多媒体的关注。项目创始人兼领导者 Linus Torvalds 在这里显然不需要介绍。
Linus 偶尔会因为他在 LKML 上的火爆而引起争议。他自己承认,这些火焰经常与破坏用户空间有关。这让我想到了我的问题。
我可以从历史的角度来解释为什么破坏用户空间是一件坏事吗?据我了解,破坏用户空间需要在应用程序级别进行修复,但如果它改进了内核代码,这是一件坏事吗?
据我了解,Linus 声明的政策是不破坏用户空间胜过其他一切,包括代码质量。为什么这如此重要,这种政策的利弊是什么?
(这种一贯适用的政策显然有一些缺点,因为 Linus 偶尔会与他在 LKML 上的高级副手在这个话题上发生“分歧”。据我所知,他在这件事上总是有自己的方式。)
考虑
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 没有解释为什么这些解决方案有效。我很感激解释。他回复了一条评论:
曾经有一个 shell
goto命令分支到指定的标签,如:这里。该goto走了,但你仍然可以使用的: whatever语法...:是一种解析的评论了。
但我想要更多细节和上下文,包括对可移植性的讨论。
当然,如果有人有其他解决方案,那也很好。
另请参阅较早的问题如何在 shell 脚本中注释多行命令?.
从下面的讨论中获取信息。这`: this is a comment`只是一个命令替换。的输出: …
我从银行收到了一个 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 x或7za x从p7zip-full包中。这些失败并出现错误:
Unsupported Method
Sub items Errors: 1
Run Code Online (Sandbox Code Playgroud)
我正在使用 Debian wheezy amd64。不过,我在测试/不稳定中没有看到unzip或7za包的重大更新。
我很感激有关如何解压缩此文件的建议,更一般地说,错误消息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) 假设我想要一个比当前操作系统版本可用的软件版本更新的软件,我该怎么办?
需要考虑的情况:
Per让我们编译一份规范问答列表,这是为以下内容提供规范答案的地方。答案应该是社区维基。