标签: bash

如何在 Bash Shell 中将字符串附加到文件名?

所以我应该找到给定目录中所有带有 .C 或 cc 冲浪修复的文件,并将它们的名称更改为 .C.blah 或 .cc.blah

有命令可以这样做吗?

或者我应该用命令 find 来实现这个吗?

unix script bash rename

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

导出 PATH= 不支持 Bash OS X

这有点像菜鸟问题,但我在添加到我的路径时遇到了问题,并且不记得上次我是如何进行更改的。

所以我使用命令“ export PATH=$PATH:/Users/evanmcdonnal/go/bin”来修改我的路径。然后我使用echo $PATH它显示我以前的路径并附加了上面的内容。问题是,当我退出终端并再次打开它时,更改消失了。有什么我在这里遗漏的,它是使更改永久化所必需的吗?我尝试直接在 etc 中编辑路径文件,但操作系统不会让我没有 root 权限,而且获得这些权限似乎有点麻烦。

bash export path osx-lion macos

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

如何限制与选项 -print0 一起使用的 find 命令的输出

我想限制 find 命令的输出。过去我曾经用于这个 ls 命令,例如:

ls *tgz|head -100|xargs -i mv "{}" ../
Run Code Online (Sandbox Code Playgroud)

但我知道如果文件名包含换行符,结果可能是不可预测的。所以更正确的方法是这样的:

find ... -print0 | xargs -0
Run Code Online (Sandbox Code Playgroud)

但是采用这种方法我无法使用 head 命令限制 find 的输出 - 它显示所有文件名用 ^@ 特殊符号分隔:

 find . -name '*tgz' -print0|head -2|less
Run Code Online (Sandbox Code Playgroud)

file1.tgz^@file2.tgz^@file3.tgz^@file4.tgz^@file5.tgz^@

有没有办法消除这种尴尬?

我试图在 awk 的帮助下解决它:

find . -name 'BATCHED*' -print0|awk 'BEGIN{RS=""}'
Run Code Online (Sandbox Code Playgroud)

但它仍然显示所有或零行。

可以借助awk解决吗?有更好的解决方案吗?

顺便提一句。我发现这个非常有指导意义的参考,但我的问题没有答案。

bash awk find

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

在 bash 中回滚时 SSH 连接出现错误的换行符

我通过 GNOME 终端中的 SSH 连接有一个 Bash 终端。服务器是 Debian Linux,客户端是 Ubuntu Linux。

长行的输出显示得很好,但是当我使用 UP 键在 bash 历史记录中滚动时,输出只有 80 个字符,然后被破坏并再次从同一行开始。

它应该是这样的:

server01:/usr/local/bin# 超长命令参数 1 参数 2 参数 3

但它看起来像这样:

参数 3 usr/local/bin# 超长命令 参数 1 参数 2 

linux ssh bash

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

如何使用钥匙串从终端挂载 SMB 共享?

对于 MAC OS 版本 (10.7),我需要能够从终端挂载 SMB 共享。有没有办法将 mount_smbfs 与钥匙串一起使用,这样我就不会提示用户名/密码或必须将其添加到命令中?我对此很陌生,因此将不胜感激。

terminal mount bash smb macos

5
推荐指数
0
解决办法
1165
查看次数

使用 cp 保留 Linux 权限和所有者

我不明白以下行为:
我有一个文件名为someFile/opt/com/internal/someFile
如果我ls -all /opt/com/internal/someFile的权限700 user:userGroup

我是 root 并且我愿意 cp /root/folder/someFile /opt/com/internal/someFile

  1. 我没有得到覆盖的提示。为什么不?

  2. 权限不变。但是,如果我这样做cp /root/folder/someFile /opt/com/internal/someFile并且该文件someFile不存在,则它由root和 not拥有user。为什么?

linux unix bash permissions cp

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

你如何让 zsh 元删除行为像 bash 一样?(要让它删除一个单词而不是整个路径。)

Bash 的元删除将删除一个路径组件而不是整个路径。你如何让 zsh 表现得像那样?

我发现了这个,这似乎有效。这是正确的做法吗?

当我第一次切换到 Zsh 时,我最想念的关于 bash 的一件事是 Mb 和 Mf(后向词和前向词)会跳过整个 /path/location,而不是每个由“/”分隔的词。为了使行为更像 bash,你可以评估这个命令:export WORDCHARS=''

http://zshwiki.org/home/zle/bindkeys

bash zsh

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

不同登录节点的不同 .bashrc 文件?

.bashrc登录到共享相同主目录的不同节点时,我可以加载不同的文件吗?

也就是说,我最感兴趣的是在以 bash 登录时加载不同的 PATH 目录,具体取决于我登录的不同 Linux 节点?例如,如果我在 abc-01 机器上登录 bash,我想.bashrc加载一个给定的文件,但是当我登录 abc-02 时,它使用相同的 /home/username 目录,我想使用不同的.bashrc. 我该怎么做呢?

linux bash login

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

使用“&”运行时,Linux 终端中缺少段错误输出

我正在调试一个必须与其他组件一起运行的应用程序。我将所有内容都包装在一个脚本中:

#!/bin/bash 
./component1 > 1.log & 
./my_application & 
./component2 > 2.log &
Run Code Online (Sandbox Code Playgroud)

我想在终端中看到输出,所以我没有重定向my_application.

原来my_application有段错误。但奇怪的是,抱怨分段错误信息的输出行没有在我的终端中打印出来。最后一行根本就不见了。

如果我./my_appliation单独在另一个终端中运行,则输出工作正常。我看到了“Segmentation fault”的最后一行

当我使用 & 运行我的应用程序时,为什么我的输出丢失?如果我在命令末尾添加 & 有什么区别?

linux terminal bash shell stderr

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

"cd !$" 在 bash 中是什么意思,我还可以使用哪些其他替换?

我见过有人这样做:

cp . yy/
cd !$
Run Code Online (Sandbox Code Playgroud)

最后一行翻译成:

cd yy/
Run Code Online (Sandbox Code Playgroud)

所以我认为的!$意思是“上一行的最后一个论点”。

我对吗?

有没有其他类似的替代品?

我在哪里可以找到他们的文档?

bash shell

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

标签 统计

bash ×10

linux ×4

macos ×2

shell ×2

terminal ×2

unix ×2

awk ×1

cp ×1

export ×1

find ×1

login ×1

mount ×1

osx-lion ×1

path ×1

permissions ×1

rename ×1

script ×1

smb ×1

ssh ×1

stderr ×1

zsh ×1