标签: bash

当你“删除”一个文件而不是安全地粉碎它时会发生什么?

我读到当你删除一个文件时,根据情况,有可能恢复它的内容。

当您“删除”文件时,硬件级别会发生什么,例如。$ rm myFile而不是安全地切碎它,例如。$ shred myFile这使得“已删除”的文件有可能恢复?

shell bash rm

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

有没有办法将 pv 命令的输出重定向到文件?

我需要将 pv 命令的输出重定向到一个文件,以便我从另一个进程读取它的进度。或者我可以通过其他方式做到这一点吗?

bash pv

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

tar 特定文件数

我有一个包含 27K 文件的目录,我想将它们压缩成多个INDEPENDENT tar 文件,每个文件有 5000 个文件,最后一个显然有 2K(27K 不能被 5 整除)。

最快/最简单的方法是什么?

linux bash tar

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

在 cron 作业中运行 bash_profile

我有一个问题,我的 cron 脚本没有加载环境变量,所以我添加了以下行:

#!/bin/sh
bash /root/.bash_profile
Run Code Online (Sandbox Code Playgroud)

这似乎没有效果,并且路径变量设置不正确。如何运行 bash_profile 脚本

bash cron

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

在 bash 中缩进输出的特定部分

说我有以下 bash 脚本,可以找到所有 error.logs 给他们一个标题,然后在它下面拖尾 5 行..

#!/bin/bash
for ERR in `find -name "error.log"`;
do
    echo -e "---- LOG: $ERR ----";
    tail -n 5 $ERR;
done;
Run Code Online (Sandbox Code Playgroud)

我想让它像这样输出:

---- LOG: foo/error.log ----
    [error ....]
    [error ....]
---- LOG: foo/error.log ----
    [error ....]
    [error ....]
---- LOG: foo/error.log ----
    [error ....]
    [error ....]
Run Code Online (Sandbox Code Playgroud)

其中tail“d部缩进字符的一些量(例如4或任何一个制表符是)

我将如何缩进该特定部分的输出?

bash

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

如何将历史记录中的最后一个 zsh 命令放入剪贴板?

我经常遇到这样的情况,我只是使用了一个命令,我需要将它复制/粘贴到不同的终端窗口/IM 或其他任何地方。

在 Mac 上,我可以使用该pbcopy命令在剪贴板中获取某些内容,但我不确定应该如何获取该命令。我提出的是

history | tail -n 1 | perl -ple 's/\d+\s+//' | pbcopy
Run Code Online (Sandbox Code Playgroud)

哪个有效,但它看起来并不像干净的解决方案。有没有更好的方法来获得最后一个命令?我正在使用zsh,但我想如果有解决方案bash也可以使用zsh

shell bash history zsh

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

如何并行运行多个shell脚本

我有几个测试脚本,每个脚本都运行一个测试 PHP 应用程序。每个脚本永远运行。

所以, cat.sh, dog.sh, 和foo.sh每个都运行一个 PHP 脚本。每个 shell 脚本都在循环中运行 PHP 应用程序,因此它会永远运行,每次运行后都会休眠。

我试图弄清楚如何同时并行运行脚本。在 stdout/term 窗口中查看 PHP 应用程序的输出。

我想,做类似以下的事情可能会奏效:

foo.sh > &2
dog.sh > &2
cat.sh > &2
Run Code Online (Sandbox Code Playgroud)

在 shell 脚本中它就足够了,但它不起作用。

foo.sh, runs foo.php once, and it runs correctly
dog.sh, runs dog.php in a never ending loop. it runs as expected
cat.sh, runs cat.php in a never ending loop
 *** this never runs!!!
Run Code Online (Sandbox Code Playgroud)

看来 shell 脚本永远不会运行cat.sh。如果我cat.sh在单独的窗口/术语中单独运行,它会按预期运行。

有没有人对如何让这些脚本并行运行有任何想法?

shell bash

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

bash : "set -e" 并检查用户是否存在使脚本退出

我正在编写一个脚本来安装 Bash 程序。我想在出错时退出,所以我添加set -e到脚本的开头。

我必须检查我的脚本中是否存在用户。为此,我正在使用grep ^${USER}: /etc/passwd. 如果用户存在,则脚本正常运行。但是,如果用户不存在,则此命令将退出。如果发生后一种情况,我不想退出。相反,我想创建用户并继续我的安装。

使我的脚本继续运行的解决方案是什么?我试图将 的输出重定向grep到一个变量,但我仍然遇到同样的问题。

scripting linux shell bash grep

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

SCP 用美元符号覆盖文件

我有这个文件:

A.class
A$1.class
A$2.class
Run Code Online (Sandbox Code Playgroud)

和一个类似的 bash 脚本:

for i in *; do
    scp "${i}" foo@bar:/tmp/;
done
Run Code Online (Sandbox Code Playgroud)

这工作正常。所有三个文件都被复制。问题在于以下几点:

for i in *; do
    scp "${i}" foo@bar:/tmp/"${i}";
    scp "${i}" foo@bar:"/tmp/${i}";
    scp "${i}" "foo@bar:/tmp/${i}";
done
Run Code Online (Sandbox Code Playgroud)

在任何一种情况下,SCP 都会复制所有文件,但复制到同一个文件A.class

有任何想法吗?谢谢!

bash scp

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

从某个用户删除 /tmp 中所有文件的脚本

我的一个服务器守护进程在 /tmp 中使用了大量空间。因为我不想在服务器磁盘空间不足时重新启动我的机器,所以我需要运行一个 CRON 脚本来删除旧的临时文件。

比方说,递归删除 /tmp 下所有距用户 1 小时以上的文件和目录的好方法是什么www-data?当然,它不应该解析符号链接并开始删除系统上其他地方的文件。我正在使用 Ubuntu 12.04 并将以 root 身份运行此 cronjob。

linux ubuntu bash cron

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

标签 统计

bash ×10

shell ×4

linux ×3

cron ×2

grep ×1

history ×1

pv ×1

rm ×1

scp ×1

scripting ×1

tar ×1

ubuntu ×1

zsh ×1