小编use*_*000的帖子

删除两个命令产生的输出共有的行

说,我有两个返回一些文本的命令。例如:

$ ./c1
/usr/bin/foo
/usr/bin/bar
/usr/bin/baz
$ ./c2
/usr/bin/foo
/usr/bin/qux
/usr/bin/buzz
/usr/bin/bar
Run Code Online (Sandbox Code Playgroud)

我想删除重复的行;即输出将是(顺序不重要):

/usr/bin/baz
/usr/bin/qux
/usr/bin/buzz
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

duplicate text-processing

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

可以访问文件系统的 chroot jail

chroot jails 似乎只是一个不同的世界,与实际文件系统没有交互。因此,整个环境必须在 chroot 中复制,这意味着在其中完整安装系统。

但是,有没有办法让 chroot jail 拥有对主文件系统的读访问权限?此外,我还希望 chroot 能够选择自己的文件。例如,如果其中/usr/bin/wget存在,那么它应该优先于系统的/usr/bin/wget.

(我实际上正在寻找行为类似于Sandboxie 的东西。)

以上可行吗?

security chroot

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

搜索包含非 ASCII 字符的文件

我试图在包含一些非 ASCII Unicode 字符的目录中查找文件。我事先不知道我必须找到的确切字符。

从概念上讲,这应该是一项简单的任务 - 找到与 regex 匹配的所有文件[^\0-\x7f]。但是,我无法想出可以真正做到这一点的东西。

我能想到的最接近的事情是:

find . -type f -exec grep -Plv '[\0-\x7f]' {} \;
Run Code Online (Sandbox Code Playgroud)

由于空行匹配,最终列出了大多数普通文本文件。

-e开关不与组合允许的-P,所以我不能用-e '[\0-\x7f]' -e '^$',和正则表达式转换成[\0-\x7f]|^$将显然是错误的,因为现在它的“或”。

有没有另一种方法来搜索这样的字符?

grep shell-script regular-expression text

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

有没有办法为不存在的目标创建符号链接?

有没有办法使用shell脚本创建目标不存在的符号链接

从阅读中man 1 ln,我看不到这样做的选项;甚至-f检查目标是否存在。

有没有办法实现我正在寻找的东西?

shell-script symlink ln

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

使用 shell 脚本捆绑依赖项

Shell 脚本通常必须依赖于可能未安装在用户计算机上的工具。为了规避这个问题,许多脚本有多个回退。

IMO 做这样的事情只会导致复杂的代码,并且找到一大块脚本只是为了兼容性原因并不少见。

为什么不能将依赖项仅包含在脚本中?脚本可以包含这些程序(作为附加的压缩部分,就像makeself那样),并在运行时简单地使用它们?

澄清一下,当然这不适用于wgetcurl; 在这种情况下,每个的代码将是最少的。我说的是涉及到图形用户界面的脚本,并有大量的代码来支持这样的程序(zenity/ yad/xdialog等),其中涉及完全不同的语法。

是否有原因未完成上述操作?

shell dependencies shell-script

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