小编ign*_*ius的帖子

如何检查多个文件是否存在?

我有一个 shell 脚本来查找文件,/tmp/bbsnode1如果该文件存在,它就会删除它。我想要做的是,如果存在多个文件(/tmp/bbsnode2/tmp/bbsnode3,和/tmp/bbsnode4),全部删除。但只有当它们都存在时才删除它们。

这是我到目前为止所拥有的:

if [ -f /tmp/bbsnode1 ]
then
/usr/bin/rm /tmp/bbsnode1
fi
Run Code Online (Sandbox Code Playgroud)

shell-script wildcards

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

将文件从大写重命名为小写

我需要详细说明一点。这些命令实际上是针对 BBS FTN 投掷者的。这些命令所在的配置文件只允许特定的声明。这里有一些例子:

exec "/home/imp/imp/poll.sh" *.su? *.mo? *.tu? *.we? *th? *.fr? *.sa? *.pkt
flag toss!.now [0-9a-Z][0-9a-Z][0-9a-Z][0-9a-Z][0-9a-Z][0-9a-Z][0-9a-Z][0-9a-Z].???
exec "/home/imp/imp/poll.sh /home/imp/hpt/secure" /home/imp/hpt/secure/*.[STFWMstfWM][ouaherOUAHER][0-9A-ZA-a] *.[pP][kK][tT]
Run Code Online (Sandbox Code Playgroud)

所以这就是为什么我要使用该语法([0-9a-z](例如))。问题是邮件程序正在寻找小写文件名,但只存在大写文件名。

我正在尝试使用以下语法将文件从大写转换为小写:

mv /home/imp/hpt/outbound/[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z].[STFWMfWM][OUAHER][0-9] /home/imp/hpt/outbound/[0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z].[stfwm][ouaher][0-9a-za-a]
Run Code Online (Sandbox Code Playgroud)

我认为我的语法不正确。

这是我要重命名的文件名示例:

0000FE70.FR0

非常感谢任何和所有帮助。谢谢。

shell

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

某些共享库的权限被拒绝

首先,我希望这是发布此内容的正确网站。

以其他用户身份登录时出现以下错误 (ignatius):

catch22bbs:~/Desktop # su ignatius
ls: error while loading shared libraries: libpcre.so.1: cannot open shared object file: Permission denied
Run Code Online (Sandbox Code Playgroud)

而且,在运行某些程序时也是如此。大多数都不起作用。

ignatius@catch22bbs:~> pico
pico: error while loading shared libraries: libmagic.so.1: cannot open shared object file: Permission denied
Run Code Online (Sandbox Code Playgroud)

这是奇怪的部分:

catch22bbs:~ # l /usr/lib/libpcre.so*
lrwxrwxrwx 1 root root     16 Jun 29 06:04 /usr/lib/libpcre.so -> libpcre.so.1.2.7*
lrwxrwxrwx 1 root root     16 Jun 29 06:04 /usr/lib/libpcre.so.1 -> libpcre.so.1.2.7*
-rwxr-xr-x 1 root root 488800 Jun 29 06:04 /usr/lib/libpcre.so.1.2.7*
Run Code Online (Sandbox Code Playgroud)

和..

catch22bbs:~ # l /usr/lib/libmagic*
lrwxrwxrwx …
Run Code Online (Sandbox Code Playgroud)

permissions libraries shared-library

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

移动文件 shell 脚本

我有一个 shell 脚本 ren.sh

#!/bin/bash
/usr/bin/mv /home/imp/imp/msgs/$1.PK1 /home/imp/imp/msgs/$1.BRD
/usr/bin/mv /home/imp/imp/msgs/$1.PK2 /home/imp/imp/msgs/$1.MIX
Run Code Online (Sandbox Code Playgroud)

它工作正常,但一次只能移动 2 个文件(*.PK2*.PK1)。我希望它将所有现有*.PK1*.PK2文件移动到*.MIX*.BRD文件

这可能吗?

shell-script rename mv

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