小编Flu*_*lux的帖子

如何将字符串传递给需要文件的命令?

假设一个程序cook接受一个参数:包含要烹饪的食物配方的文本文件的路径名。假设我想从bash脚本中调用这个程序,还假设我已经在一个字符串变量中拥有了配方:

#!/bin/bash

the_recipe="$(cat << EOF
wash cucumbers
wash knife
slice cucumbers
EOF
)"

cook ...  # What should I do here? It expects a file, but I only have a string.
Run Code Online (Sandbox Code Playgroud)

当需要文件名参数时,如何将配方传递给命令?

我想创建一个临时文件只是为了传递文件,但我想知道是否有其他方法可以解决这个问题。

bash shell-script

53
推荐指数
4
解决办法
2万
查看次数

如何按文件类型查找文件?

我知道我可以使用find:找到文件find . -type f -name 'sunrise'。结果示例:

./sunrise
./events/sunrise
./astronomy/sunrise
./schedule/sunrise
Run Code Online (Sandbox Code Playgroud)

我也知道我可以确定文件的文件类型:file sunrise. 结果示例:

sunrise: PEM RSA private key
Run Code Online (Sandbox Code Playgroud)

但是如何按文件类型查找文件?

例如my-find . -type f -name 'sunrise' -filetype=bash-script

./astronomy/sunrise
./schedule/sunrise
Run Code Online (Sandbox Code Playgroud)

find file-command files file-types

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

tar.gpg 与 tar.gz.gpg

在使用 GPG 加密之前压缩 tar 存档是否多余?据我了解,GPG 会压缩它加密的文件。是不是更适合做tar -> gpg而不是tar -> gzip -> gpg

gzip gpg

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

使用读取时出现“无协处理”错误

我有一个名为 .bash 的 bash 脚本reader。它读取用户输入:

#!/bin/bash
read -p "What is your name?" username
echo "Hello, ${username}"
Run Code Online (Sandbox Code Playgroud)

通过source reader(编辑:从 zsh shell)运行脚本,我收到错误reader:read:2: -p: no coprocess. 当我将它作为./reader.

其他read选项不会产生此错误。例如,我可以这样做:

#/bin/bash
echo -n "What is your name?"
read username
echo "Hello, ${username}"
Run Code Online (Sandbox Code Playgroud)

无协处理错误从何而来?这是什么意思?我该怎么办?

bash shell-script read

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

使用 sha256sum 检查校验和时如何显示进度

检查大文件的 SHA256 校验和时如何显示进度?当我sha256sum -c SHA256SUMS在文件SHA256SUMS包含大文件的校验和的地方执行操作时,没有指示该命令何时可能完成。有没有办法在做的时候显示进度sha256sum -c ...

debian hashsum

8
推荐指数
2
解决办法
2627
查看次数

使用来自数组的参数运行命令

假设我有一个名为app. 用法示例:app -t 'first tab' -t 'second tab'在该程序中打开两个“标签”。

问题是:如果参数数量可以变化,我如何appbash脚本中执行命令(即)?

考虑一下:

#!/bin/bash
tabs=(
    'first tab'
    'second tab'
)

# Open the app (starting with some tabs).
app  # ... How to get `app -t 'first tab' -t 'second tab'`?
Run Code Online (Sandbox Code Playgroud)

我希望上述脚本具有等效于app -t 'first tab' -t 'second tab'. 这样的bash脚本怎么写?

编辑:请注意,问题是询问有关使用参数数组动态组合命令行参数的问题。

bash

7
推荐指数
2
解决办法
7139
查看次数

“hier(7)”和“file-hierarchy(7)”手册页有什么区别?

无论hier(7)file-hierarchy(7)手册页声称描述传统文件系统层次结构。但是,它们之间存在一些差异。例如,hier(7)描述/opt/var/crash,但file-hierarchy(7)不描述。这两种描述有什么区别。真正的 Linux 系统使用哪一种?

linux filesystems man

7
推荐指数
2
解决办法
884
查看次数

如何限制 SSH 连接的带宽

如何限制 SSH 连接的速度?例如,当我进行端口转发 ( ssh -L ...)、反向隧道 ( ssh -R ...) 或 SOCKS5 动态端口转发 ( ssh -D ...) 时,我可能想要限制隧道的带宽。

ssh ssh-tunneling bandwidth

7
推荐指数
2
解决办法
5798
查看次数

如何测量SSH连接的带宽

如何测量与远程计算机的特定 SSH 连接的带宽?例如,如果我有一个 SSH 隧道进行端口转发,我想知道有多少数据通过该隧道。特别是,我想知道两个方向的传输速度以及传输的总数据量(两个方向分别)。我怎样才能做到这一点?

操作系统:Debian 11 和 Ubuntu 20.04。

ssh bandwidth

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

文件权限位后的加号 (+) 是什么意思?

我运行ls并找到了一个+设置了位的目录:

$ ls -ld /var/log/journal
drwxr-sr-x+ 3 root systemd-journal 4096 Oct  1 01:23 /var/log/journal
Run Code Online (Sandbox Code Playgroud)

我明白drwxr-sr-x,但什么是+?这叫什么?它有什么作用?

ls permissions

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

我可以在“正常”差异/补丁文件中写入注释吗?

我曾经diff制作过补丁文件。diff old.txt new.txt:

1c1
< Lorem ipsum dolor sit amet, consectetur adipiscing
---
> The quick brown fox jumps over the lazy dog.
Run Code Online (Sandbox Code Playgroud)

输出采用默认的“正常差异”格式。

我可以在这个补丁文件中写注释吗?如果是这样,补丁文件是否可以合理移植?

diff patch

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

如何提高 SSH 隧道的压缩级别

这就是我建立从本地计算机到远程计算机的 SSH 隧道(使用 SOCKS 的动态端口转发)的方法:

ssh -C -N -D 12345 user@192.168.1.2
Run Code Online (Sandbox Code Playgroud)

我使用压缩 ( -C),因为我的带宽昂贵且有限。

有没有办法进一步提高压缩级别?SSH 协议的版本 1 有CompressionLevel配置选项,但版本 2 中没有等效选项。我愿意使用其他开源工具来实现更高的压缩级别。

操作系统:Ubuntu 20.04。

ssh compression ssh-tunneling

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