我编写了一个小脚本,可以对目录 + 文件列表进行 tar 和压缩。
该脚本似乎成功运行,因为在脚本运行后创建了一个可用的 .tar.gz 文件。
但是,脚本完成后我收到了这条烦人的消息:
tar:由于先前的错误而以失败状态退出
脚本运行时我没有看到任何错误消息,就像我说的那样,生成的文件可以在没有警告/错误的情况下解压缩。由于我将此用作备份的一部分,因此我想确保我没有忽略一些严重的事情。
产生此错误/警告消息的可能原因是什么 - 我可以安全地忽略它吗?。如果我不能忽略它,诊断和解决错误的步骤是什么?
我在 Ubuntu 10.0.4 上运行
当 I 时echo $something >> file.txt,一个新行将附加到文件中。
如果我想在没有新行的情况下追加怎么办?
我想知道如何在一行中编写 bash 脚本中的 if 条件。
例如,我怎么能把这个写在一行上,然后把另一个和它一样的放在下一行?
if [ -f "/usr/bin/wine" ]; then
export WINEARCH=win32
fi
Run Code Online (Sandbox Code Playgroud)
我问这个是因为我的 .bashrc 中有很多别名,而且我在多个系统上有相同的 .bashrc(同步),但我不需要每个系统上的所有别名。我把它们中的大部分放在 if 语句中,现在一切都很好,但它们占用了很多空间,每行 3 行加上它们之间的空行(我喜欢让它们很容易看到)
我也会将此技术用于环境变量。
我有一个相当大的 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 命令是理想的,但我愿意接受任何解决方案。
我有 100 个文件:cvd1.txt, cvd2.txt...cvd100.txt
如何将gzip100 个文件合并为一个.gz文件,以便在我gunzip之后,我应该有cvd1.txt, cvd2.txt...cvd100.txt分开?
我有一个这样的目录:
$ 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从上面的目录运行的确切行为是什么?
有没有办法使用bash脚本创建和格式化分区?
我认为它可以用 fdisk 完成,但我不知道如何将命令从 bash 脚本输入 fdisk shell,然后退出 fdisk shell。
我想创建一个分区,然后在 bash 中将其格式化为 ntfs。
到目前为止,我们正在使用 Bash 编写所有脚本,但我开始觉得它有点傻。虽然我们当然可以用 Bash 做我们想做的一切(它非常强大),但我开始怀疑我们是否不应该使用适当的脚本语言(在我们的例子中很可能是 Ruby)。
您如何决定何时在脚本中使用 Perl/Python/Ruby 而不是 Bash?我认为使用 Ruby 的 init 脚本没有意义,但是添加电子邮件帐户的稍长脚本怎么样?
在 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
当我忘记了以下引文时,我的早晨咖啡还没有到达我的脑海:
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 ×10
linux ×4
gzip ×2
unix ×2
bash-alias ×1
bashrc ×1
command-line ×1
fdisk ×1
ntfs ×1
partitioning ×1
perl ×1
redirection ×1
rm ×1
ruby ×1
script ×1
tar ×1
ubuntu ×1
windows-10 ×1