标签: bash

在哪里存储所有用户都可以在 Debian 上执行的 bash 脚本?

我的服务器上有许多 bash 脚本,所有用户都可以使用。

但似乎位置

/usr/local/sbin
Run Code Online (Sandbox Code Playgroud)

不是最好的地方。

我不想使用用户的主目录,因为每个人都可能执行它们。

是否有关于将它们存储在 Debian 上的约定?

debian bash path

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

BASH - 使用 mv 时合并目录

我刚开始使用 BASH,所以我可以将一个目录的所有内容移动到另一个目录。但问题是,我期待它合并目录。我正在使用 cron 作业来运行此脚本。

#!/bin/bash

shopt -s dotglob nullglob
mv mv_schedule/* public_html/
Run Code Online (Sandbox Code Playgroud)

来源:(/mv_schedule/包含文件夹/文件)

/files/
4.html
5.html
/assets/
sitemap.xml
Run Code Online (Sandbox Code Playgroud)

目的地:(/public_html/以前的文件夹已经存在)

/files/
1.html
2.html
3.html
/assets/
sitemap.xml
Run Code Online (Sandbox Code Playgroud)

所以,我想要的东西,是所有来自这些目录内的新文件/mv_schedule/与在那些合并/public_html/,并已经在那里存在的文件,与那些来自何处来代替/mv_schedule/

当我使用当前脚本尝试此操作时,它当前正在通过电子邮件返回此错误:

mv: cannot move `mv_schedule/assets' to `public_html/assets': Directory not empty
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

linux unix bash cron

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

如何从Linux服务器上传多个文件到FTP?

例如,我的 Linux 服务器上有数据库备份,我想编写一个脚本将其上传到远程 FTP。我试过这个put命令,但它一次只能传输一个文件。然后我尝试了 mput 命令,但它只显示我要传输的文件的问号(也许我使用错误?...)

我试过这个:

#!/bin/bash
ftp -n <<EOF
open ftp.server.com
user name password
cd backup
mput /backup/*
EOF
Run Code Online (Sandbox Code Playgroud)

但它不会工作。它输出我想传输的文件名称,名称末尾带有问号。我错过了什么,或者有更好的更简单的方法吗?

linux ftp bash

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

你如何一起使用 PIPESTATUS、tee 和 /bin/sh?

当我跑

curl | tee test.txt; echo ${PIPESTATUS[0]}
Run Code Online (Sandbox Code Playgroud)

我正确地看到

curl:尝试“curl --help”或“curl --manual”以获取更多信息

2

但是当我尝试使用“/bin/sh”运行完全相同的命令时:

sh -c "curl | tee test.txt; echo \${PIPESTATUS[0]}"
Run Code Online (Sandbox Code Playgroud)

我得到

curl:尝试“curl --help”或“curl --manual”以获取更多信息

sh: 1: 替换错误

Bad substitution请问我们如何解决问题?

linux bash pipe exit-code

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

Git Bash - Windows - 启动屏幕启动和资源管理器启动之间的不同字体大小

我在 Windows 8.1 上使用 Git Bash

我看到(至少)两种不同的方式来启动 Git Bash:

1) 开始屏幕 -> 输入 Git Bash -> 按 Enter

2) Windows 资源管理器 -> 右键单击​​文件夹 -> 选择“Git Bash”

当我用方法 1 打开程序时,我的字体很小。当我用方法 2 打开程序时,我的字体很大。这两种方法似乎都能正确读取我的 /etc/profile 和其他配置。

我更喜欢更大的字体,所以我希望它每次都用更大的字体打开。

启动方法有什么区别?为什么会发生这种情况,如何让它每次都使用大字体?

bash git windows-8 git-bash

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

如何为 bash 源命令重定向标准输入?

我想要source一个文件并为该源重定向 STDIN。是否可以?

例如,我有这个我想获取的文件:

# test.sh
export VALUE=SOMETHING
Run Code Online (Sandbox Code Playgroud)

这适用于外壳:

> source test.sh
> echo $VALUE
SOMETHING
>
Run Code Online (Sandbox Code Playgroud)

然而这不起作用

> echo anything | source test.sh
> echo $VALUE

>
Run Code Online (Sandbox Code Playgroud)

有什么方法可以做到这一点,还是因为“源”在当前 shell 中运行而无法暂时重定向 STDIN?

bash

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

无法创建目录“/var/empty/.ssh”

每天,在使用几个小时后,任何使用 SSH 的东西都会随机停止工作。唯一的解决方案是我重新启动我的机器,它会修复它,直到它再次随机发生。

> git push
Could not create directory '/var/empty/.ssh'.
The authenticity of host 'github.com (192.30.252.131)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
Run Code Online (Sandbox Code Playgroud)

在尝试通过 ssh 进入 diff 主机后,这里有更多关于 -v 的信息(为了简洁而缩短):

debug1: Connection established.
Could not create directory '/var/empty/.ssh'.
debug1: identity file /var/empty/.ssh/id_rsa type -1
debug1: identity file /var/empty/.ssh/id_rsa-cert type -1
debug1: identity file /var/empty/.ssh/id_dsa type -1
debug1: identity file /var/empty/.ssh/id_dsa-cert type -1 
Run Code Online (Sandbox Code Playgroud)

我已登录到我的主要 OSX 用户。~/ 和 ~/.ssh 都很好而且完好无损,发生这种情况时我没有对我的用户的权限做任何事情。发生这种情况时,我当然不会在 /etc …

ssh terminal bash macos

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

Windows 批处理等效于 bash 的 set -e

是否有相当于 bash 的 Windows 批处理set -e,如果命令以非零退出状态失败(除了在if语句中预期的地方),它会导致 shell 立即退出?if errorlevel 1 exit 1在每一行之后我都会很累。

windows bash batch-file

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

如何将目录更改为符号链接目录的绝对路径?

我目前在一个符号链接目录中,我想在绝对路径中上一级,但我不能,因为它会回到我的主目录 (~)。我可以执行 pwd -P 来获取绝对路径,但是如何将该结果通过管道传输到 cd 命令中?我一直以为是这样的:{}

样本:

10:21:55 {master *} ~/ch$ pwd -P 
/home/drupal/sites/all/themes/house

10:22:16 {master *} ~/ch$ pwd -P | cd {}
bash: cd: {}: No such file or directory

10:22:20 {master *} ~/ch$ 
Run Code Online (Sandbox Code Playgroud)

bash

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

查找文本中重复的单词

最常见的错别字之一是将同一个单词重复两次,如下所示。我需要一个自动程序来删除文本文件中的所有重复单词。对于现代编辑器或拼写检查器来说,这不应该是一个奇怪的功能,例如我记得 MS Word 几年前引入了这个功能!显然,我的操作系统(hun-spell)上的默认拼写检查不能这样做,因为它只能找到字典中没有的单词。

有一个对 linux 的特定文本编辑器编辑器(pluma/gedit2 或 Sublime-text)有效的解决方案和基于 bash 脚本的解决方案是可以的。

linux text-editing bash regex spell-check

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

标签 统计

bash ×10

linux ×4

batch-file ×1

cron ×1

debian ×1

exit-code ×1

ftp ×1

git ×1

git-bash ×1

macos ×1

path ×1

pipe ×1

regex ×1

spell-check ×1

ssh ×1

terminal ×1

text-editing ×1

unix ×1

windows ×1

windows-8 ×1