小编Dee*_*tal的帖子

Bash 中标准输入和标准输出重定向的优先级

我的问题是关于重定向优先级是 bash。假设你有一个命令:

cmd1 < cmd2 > cmd3

会不会翻译成:

(cmd1 < cmd2) > cmd3

或者

cmd1 < (cmd2 > cmd3)

bash io-redirection

10
推荐指数
1
解决办法
3079
查看次数

仅将权限和所有权从一个 tar 文件复制到另一个

我有两个 tar 文件,它们基本上是我在 android 上的 /data 文件夹的备份。问题是最新备份中文件的权限和所有权搞砸了。然而,旧版 tar 中的权限是完美的。

我想要一种从 old.tar 读取权限并将更改复制到 latest.tar 的方法。

我尝试使用 -p 和 --same-owner 标志将文件提取到我自己的系统,但所有权更改为root而不是system因为我的计算机没有名为 system 的用户或组,但我的 android 手机有。我想我会提取文件,并编写一个脚本,该脚本使用 stat 和 grep 读取权限和所有权,并在 latest.tar 中设置文件的权限和所有权。但它似乎不是这样工作的。任何人都可以在这个问题上给我一些帮助。

tar permissions

6
推荐指数
1
解决办法
1807
查看次数

将 /dev/tty 的输出放入一个变量中

我创建了两个备份脚本 - 一个用于文件 (filebackup.sh),另一个用于数据库 (dbbackup.sh)。filebackup.sh调用dbbackup.sh并将输出存储在变量中。返回的输出dbbackup.sh是 tar 文件名,脚本在其中存储了所有备份的数据库。

该脚本最后dbbackup.sh包含以下内容:

echo $TARFILE > /dev/tty
Run Code Online (Sandbox Code Playgroud)

该脚本filebackup.sh像这样调用 dbbackup.sh:

DBBACKUP="`/scripts/dbbackup.sh &>/dev/null`"
Run Code Online (Sandbox Code Playgroud)

这会将脚本的所有额外输出转储到 /dev/null 并确保仅返回文件名。

一切正常,除了当我调用 filebackup.sh 时,文件名会打印到屏幕上。变量$DBBACKUP保持为空。我在这里做错了什么?

io-redirection shell-script

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

标签 统计

io-redirection ×2

bash ×1

permissions ×1

shell-script ×1

tar ×1