标签: bash

tar:由于先前的错误而以失败状态退出

我编写了一个小脚本,可以对目录 + 文件列表进行 tar 和压缩。

该脚本似乎成功运行,因为在脚本运行后创建了一个可用的 .tar.gz 文件。

但是,脚本完成后我收到了这条烦人的消息:

tar:由于先前的错误而以失败状态退出

脚本运行时我没有看到任何错误消息,就像我说的那样,生成的文件可以在没有警告/错误的情况下解压缩。由于我将此用作备份的一部分,因此我想确保我没有忽略一些严重的事情。

产生此错误/警告消息的可能原因是什么 - 我可以安全地忽略它吗?。如果我不能忽略它,诊断和解决错误的步骤是什么?

我在 Ubuntu 10.0.4 上运行

bash gzip tar ubuntu

92
推荐指数
4
解决办法
21万
查看次数

我如何在没有回车的情况下回显 $something >> file.txt?

当 I 时echo $something >> file.txt,一个新行将附加到文件中。

如果我想在没有新行的情况下追加怎么办?

bash redirection

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

如果在单行,则重击

我想知道如何在一行中编写 bash 脚本中的 if 条件。

例如,我怎么能把这个写在一行上,然后把另一个和它一样的放在下一行?

if [ -f "/usr/bin/wine" ]; then
    export WINEARCH=win32
fi
Run Code Online (Sandbox Code Playgroud)

我问这个是因为我的 .bashrc 中有很多别名,而且我在多个系统上有相同的 .bashrc(同步),但我不需要每个系统上的所有别名。我把它们中的大部分放在 if 语句中,现在一切都很好,但它们占用了很多空间,每行 3 行加上它们之间的空行(我喜欢让它们很容易看到)

我也会将此技术用于环境变量。

linux bash command-line bashrc

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

如何只保留文件的每第 n 行

我有一个相当大的 CSV 文件 (75MB)。我只是想制作它的图表,所以我真的不需要所有数据。

改写:我想删除 n 行,然后保留一行,然后删除 n 行,依此类推。

因此,如果文件如下所示:

Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Run Code Online (Sandbox Code Playgroud)

并且 n=2,那么输出将是:

Line 3
Line 6
Run Code Online (Sandbox Code Playgroud)

似乎sed可以做到这一点,但我一直无法弄清楚如何做到这一点。bash 命令是理想的,但我愿意接受任何解决方案。

bash

87
推荐指数
6
解决办法
10万
查看次数

如何将多个文件压缩成一个 gz 文件?

我有 100 个文件:cvd1.txt, cvd2.txt...cvd100.txt

如何将gzip100 个文件合并为一个.gz文件,以便在我gunzip之后,我应该有cvd1.txt, cvd2.txt...cvd100.txt分开?

linux unix bash gzip

84
推荐指数
5
解决办法
30万
查看次数

rm -rf 是否遵循符号链接?

我有一个这样的目录:

$ ls -l
total 899166
drwxr-xr-x 12 me scicomp       324 Jan 24 13:47 data
-rw-r--r--  1 me scicomp     84188 Jan 24 13:47 lod-thin-1.000000-0.010000-0.030000.rda
drwxr-xr-x  2 me scicomp       808 Jan 24 13:47 log
lrwxrwxrwx  1 me scicomp        17 Jan 25 09:41 msg -> /home/me/msg
Run Code Online (Sandbox Code Playgroud)

我想使用rm -r.

但是我害怕rm -r会遵循符号链接并删除该目录中的所有内容(这非常糟糕)。

我在手册页中找不到任何关于此的内容。rm -rf从上面的目录运行的确切行为是什么?

linux unix bash symbolic-link rm

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

如何使用 bash 脚本创建和格式化分区?

有没有办法使用bash脚本创建和格式化分区?

我认为它可以用 fdisk 完成,但我不知道如何将命令从 bash 脚本输入 fdisk shell,然后退出 fdisk shell。

我想创建一个分区,然后在 bash 中将其格式化为 ntfs。

ntfs bash partitioning fdisk

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

何时使用 Bash,何时使用 Perl/Python/Ruby?

到目前为止,我们正在使用 Bash 编写所有脚本,但我开始觉得它有点傻。虽然我们当然可以用 Bash 做我们想做的一切(它非常强大),但我开始怀疑我们是否不应该使用适当的脚本语言(在我们的例子中很可能是 Ruby)。

您如何决定何时在脚本中使用 Perl/Python/Ruby 而不是 Bash?我认为使用 Ruby 的 init 脚本没有意义,但是添加电子邮件帐户的稍长脚本怎么样?

linux script bash perl ruby

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

如何在 Windows 10 (WSL) 中更改 Linux 子系统的语言?

在 Windows 10 中安装 Bash 后,我注意到它在 linux 应用程序中使用瑞典语。我的 Windows 10 安装是英文的。

在将默认输入语言更改为英语后,我尝试重新安装 bash

lxrun /uninstall /full

lxrun /install
Run Code Online (Sandbox Code Playgroud)

但它仍然在 linux 应用程序中使用瑞典文本,例如在 nano 中。

那么如何强制 Linux 子系统使用英语安装呢?

bash windows-10 windows-subsystem-for-linux windows-10-v1607

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

如何对减号取消别名?

当我忘记了以下引文时,我的早晨咖啡还没有到达我的脑海:

alias grep="grep --color=always"
Run Code Online (Sandbox Code Playgroud)

所以我输入:

alias grep=grep --color=always
Run Code Online (Sandbox Code Playgroud)

留给我:

--color=always
grep=grep
Run Code Online (Sandbox Code Playgroud)

在我的别名中。

当我尝试使用 --color=always 清理时,unalias --color我得到:

bash: unalias: --: invalid option
unalias: usage: unalias [-a] name [name ...]
Run Code Online (Sandbox Code Playgroud)

我尝试逃避、引用和乞求,但我不知道如何让突击队 unalias 清理混乱。

(我知道重新启动可以解决问题,但肯定有另一种方法)

bash bash-alias

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