小编Ber*_*ard的帖子

`touch` 命令的合法用途是什么?

什么是点touch命令?我知道我可以用它创建空文件,但echo -n.

否则,为什么有人需要更改文件的时间戳?除非造成关于文件年龄的错误印象,否则我看不到任何其他用途,而且这不是合法用途(从我的角度来看)。

timestamps command touch

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

我怎么能`别名sudo !!`?

我正在尝试sudo !!在 Bash 中设置别名。我试过alias sbb='sudo !!',但它把它解释为文字 !!并打印

sudo: !!: command not found
Run Code Online (Sandbox Code Playgroud)

如果我使用双引号,它会替换字符串本身中的双 bang,所以这不起作用。

有什么办法可以使这项工作?还是其他别名?`

bash command-history sudo alias history-expansion

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

如何从历史中执行连续的命令?

假设我要执行之前执行过的四个命令的序列。如果命令历史中的第一个是 432,那么我可以这样做:

$ !432; !433; !434; !435
Run Code Online (Sandbox Code Playgroud)

我很好奇,有没有更有效的方法来实现这一目标?

command-line bash command-history

54
推荐指数
4
解决办法
5万
查看次数

如何使用大括号扩展创建带有前导零的序列

当我使用以下内容时,我得到了预期的结果:

$ echo {8..10}
8 9 10
Run Code Online (Sandbox Code Playgroud)

如何以简单的方式使用此大括号扩展以获得以下输出?

$ echo {8..10}
08 09 10
Run Code Online (Sandbox Code Playgroud)

我现在认为这可以使用seq(没有尝试)获得,但这不是我想要的。

有用的信息可能是我仅限于这个 bash 版本。(如果您有zsh解决方案,但没有bash解决方案,也请分享)

$ bash -version
GNU bash, version 3.2.51(1)-release (x86_64-suse-linux-gnu)
Run Code Online (Sandbox Code Playgroud)

bash brace-expansion arithmetic

54
推荐指数
4
解决办法
8万
查看次数

使用 VIM 替换,重用部分搜索模式

我正在使用VIm并尝试设置一个搜索和替换命令来进行一些替换,我可以在其中重新使用作为我的搜索字符串一部分的正则表达式。

一个简单的例子是一条线,我想更换(10){10},其中10可以是任何数字。

我来了这么远

  .s/([0-9]*)/what here??/
Run Code Online (Sandbox Code Playgroud)

这与我想要的部分完全匹配。

现在更换,我试过了

  .s/([0-9]*)/{\0}/
Run Code Online (Sandbox Code Playgroud)

但是,这作为输出 {(10)}

然后,我试过了

 .s/(\zs[0-9]*\ze)/{\0}/
Run Code Online (Sandbox Code Playgroud)

然而,这给了我({10}),我也关闭了,但不是我想要的。

我想我需要一些其他类型的标记/反向引用而不是 this \0,但我不知道在哪里看。所以问题是,这可以在 vim 中完成吗,如果可以,怎么做?

vim vi regular-expression replace

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

使用 && 和 ; 执行多个命令的区别

使用&&和执行多个命令有什么区别;

例子:

echo "Hi\!" && echo "How are you?"
Run Code Online (Sandbox Code Playgroud)

echo "Hi\!"; echo "How are you?"
Run Code Online (Sandbox Code Playgroud)

shell bash

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

安装 git "sudo: apt-get: command not found"

我正在尝试安装 git。我运行以下命令:

sudo apt-get install git-core git-gui git-doc

但收到以下错误: sudo: apt-get: command not found

我该怎么办?

command-line yum centos git apt

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

如何使用 gnu texttools 执行连续的“wc -l”?

我当然知道

cat logfile.txt | wc -l
120
Run Code Online (Sandbox Code Playgroud)

会告诉我文件中的行数。

然而

tail -f logfile.txt
Run Code Online (Sandbox Code Playgroud)

将向我显示另一个程序写入的新行logfile.txt

是否可以将两者结合起来,以便我使用标准文本实用程序获得 logfile.txt 的连续更新行数?

我知道

watch wc -l logfile.txt
Run Code Online (Sandbox Code Playgroud)

但我不想每次都重新计算整个文件,这似乎是一种浪费。每隔一秒左右就需要一个仅附加的计数,并且可能在行尾使用一个\r而不是一个\n

shell bash logs tail text-processing

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

如何设置 logrotate 以每小时轮换日志?

根据Unix和Linux管理手册和man,logrotate的有选项dailyweekly以及monthly,但有一种方法来添加一个hourly选项?

本博客文章中提到,您可以设置size 1和删除的时间选项(如:daily),然后手动调用logrotatecron-我想是这样

logrotate -f /etc/logrotate.d/my-hourly-file
Run Code Online (Sandbox Code Playgroud)

但是有没有更优雅的每小时轮换日志的解决方案?

linux logrotate

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

触摸:无法触摸`foo':没有这样的文件或目录

什么可能导致触摸失败并显示此错误消息?

touch: cannot touch `foo': No such file or directory
Run Code Online (Sandbox Code Playgroud)

请注意,由于权限不正确导致的错误看起来不同:

touch: cannot touch `foo': Permission denied
Run Code Online (Sandbox Code Playgroud)

linux shell touch

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