Questions tagged «bash»

Bash是来自GNU Project的类Unix操作系统的免费外壳。


1
监控并有条件地继续输出命令
在bash中,我有一个在屏幕上运行的命令有效: while true do echo $RANDOM sleep 1 done 其输出是: 12396 19683 31641 ... 我想把它管道化为像grep / awk这样的东西,我匹配一个特定的模式,比如12345,我想要一个命令来运行。 我不想捕获正在运行的命令的完整输出 - 它可能会在找到匹配项之前运行很长时间并且我不想在机器上浪费空间。 这可以在bash中轻松完成吗? 在一个理想的世界里,我还希望输出继续打印到终端,这样我就可以自己远程监控输出,但这并不是绝对必要的。

1
Unix Copy(cp)没有符号链接
我想复制我的文件,但将符号链接转换为硬链接(即实际文件)。我怎样才能做到这一点? 这是我的代码(不起作用): cp -RL ${FROM_DIR} ${TO_DIR} 注意:这是出于Xcode目的 - 构建中不允许使用符号链接。 谢谢! 编辑: 问题是我首先删除文件的方式 - 它不是删除现有的符号链接。 rm -RLf "${FROM_DIR}/*"

1
如何在Bash中列出目录和输出
我想获取文件夹中的目录列表,并将列表输出到可执行文件中,该文件使用它们来运行某些内容。 好看多了,这个bash的文件需要我里面的文件夹列表$directory,从变化@sub1,@sub2,@sub3,有时上升到30一路所有子文件夹都附加有@符号。 目前,我手动将子文件夹添加到我的列表中,并调用-sub="$subs",其中subs在上面定义为 subs="$directory/@sub1;$directory/@sub2;...等 我确实需要为输出保持相同的格式,以便与构建可执行文件的方式保持一致。 什么是自动化的最佳方式?对不起,如果它有点奇怪,我的第一个问题在这里。

0
Cygwin和Cygwin64在终端中缺少提示
我试图安装并重新安装cygwin和cygwin64。我也尝试过不同的镜像站点。 user@PC~ $我没有看到像这样的线条,而是看到一个带有闪烁光标的空白屏幕。 cygwin终端的属性指出目标: C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico - 我也试过stty sane并得到以下错误: sh:无法获得控制台输入模式:句柄无效。 sh:无法获得控制台输出模式:句柄无效。 sh:无法获取控制台缓冲区信息:句柄无效。 sh:无法设置控制台模式:句柄无效。 有没有人遇到这个问题?你是怎么解决的?

1
查找大于X的目录并移至新目的地
我想将大于100MB的所有文件夹(max-depth = 1)移动到新目的地。这是我到目前为止所得到的: du --max-depth=1 -h --threshold=100MB | head -n-1 | awk '{print $2}' | xargs -p -0 -I {} mv {} ../new_location 不知怎的,我的结果没有被移动到新目的地,我只看到我要移动的所有文件夹的长列表,而不是它们被移动。

1
如何在管道中间使用“此处文档”?
我想使用heredoc作为模板生成一些内容: passphrase=$(<passphrase) envsubst <<EOF apiVersion: v1 kind: Secret metadata: name: openshift-passphrase stringData: passphrase: ${passphrase} EOF 把它管道oc create -f -。 如果我在之后添加一个管道EOF,它就不起作用。 如何将具有可变替换的heredoc传输到消耗它的东西?
1 linux  command-line  bash  pipe  sh 

1
刷新一个大的tar.gz?
我有一个包含大约300Mb代码和数据的目录,我需要定期更改几个文件中的几行代码并将目录重新打包成新的project-version.tar.gz。重新打包所有目录需要一段时间,我想知道是否有办法修改现有tar.gz中完成的少量更改的内容,以便能够加快进程,理想情况下使用Linux命令行。
1 bash  tar 

3
Windows上的Bash:mv命令 - 无法移动到自身的子目录
我正在尝试从Windows Linux子系统上的源安装Ruby。我已经从我的主目录中的源代码成功构建了:~/ruby/ruby-2.3.0我正在尝试将其移动到/opt/rubies/。 当我运行move命令时,我收到以下错误: /# mv ~/ruby/ruby-2.3.0/ /opt/rubies/ mv: cannot move ‘/root/ruby/ruby-2.3.0/’ to a subdirectory of itself, ‘/opt/rubies/ruby-2.3.0’ 这是非常令人困惑的,因为我正在将目录移动到一个完全不同的位置,而不是路径本身所显示的本身的子目录。 它对我的主目录下的任何移动命令都做同样的事情: ~# mv test/ / mv: cannot move ‘test/’ to a subdirectory of itself, ‘/test’ 我似乎无法复制任何文件: ~# cp ruby/ruby-2.3.0/ /opt/rubies/ruby-2.3.0 cp: omitting directory ‘ruby/ruby-2.3.0/’ 难道我做错了什么?

2
使用FFMPEG转换目录中的所有文件
我正在尝试编写一个脚本来将目录中的所有文件转换为m4v,同时尝试保持相似(如果不是相同)的质量并压缩文件以减小整体大小。 我拼凑了一个小批量脚本,但它不会运行。谁能伸出援助之手/建议如何最好地压缩和保持质量? #!/bin/bash #Convert files using ffmpeg DIR="/Volumes/Misc/To Convert 2" for i in $DIR; do ffmpeg -i "$i" -c:v libx264 -crf 19 -preset slow -c:a aac -strict experimental -b:a 192k -ac 2 "/Volumes/Misc/Converted/${i%.*}.m4v" done 编辑:输出 这是我尝试运行shell脚本时得到的输出 ffmpeg version 2.6.1-tessus Copyright (c) 2000-2015 the FFmpeg developers built with Apple LLVM version …


2
不能使用命令提示符或putty ssh到VPN,可以从PHPStorm和Git Bash?
所以,我正在尝试使用我的forge用户连接到我拥有的VPN 。我可以ssh通过Git Bash和PHPStorm的数据库连接工具,但我不能从命令提示符或putty。 如果我尝试从cmd:运行它ssh myuser@myip -v,我会得到这个结果: 同样,如果我尝试ssh从腻子进入,我会得到一个对话告诉我: 已断开连接:没有可用的支持身份验证方法(服务器已发送:公钥) 然而,使用Git Bash: 成功! 为什么?有什么不同?这是文件权限问题吗?
1 bash  ssh  vpn  git  putty 

1
文件不存在,但ls显示“没有这样的文件或目录”错误
File system ext4 // which ls -> /bin/ls // Bash -> 3.2.57(2)-release // whoami -> admin 如果我运行,ls那么我首先得到一个错误的文件列表 “没有相应的文件和目录” 然后是目录的健康文件。 包含这些错误文件的文件夹具有不寻常的大小: 关于有错误的文件,我不能: 删除文件 复制文件 移动文件 删除目录,因为它不是空的(rm -r [DirectoryName]) Mac OS和MS-Windows上均未显示/列出错误文件 我可以: 移动目录(mv)的内容,包括坏文件 获取选项卡以填写错误文件的名称 任何提示?要么删除它们要么恢复它们。
1 linux  bash  ls 

1
安装Microsoft Services for UNIX后出现问题
我安装了Cygwin,一切都很有魅力。在某些时候,我在我的计算机上安装了Microsoft Services for UNIX,并且问题已经开始。 当我打开一个commnad shell时,想尝试新的功能并输入例如vi,答案是: PSXSS.EXE - 未找到入口点:无法在动态链接库ntdll.dll中找到过程入口点TFLFreeUserThreadStack。 当我试图打开cygwin时,它告诉我: / bin / bash:没有这样的文件或目录 当我连接外部硬盘时,它需要30'才能检测到它。 我试图回滚到更早的恢复点。哪个没有真正的帮助。安装SFU时,我同意了案例敏感的文件系统 - 这是原因吗?如果是,我该如何撤销它? 任何帮助将不胜感激。 你的 magu_ 操作系统:赢7/32 - 位

1
命令不在shell上工作但在提示时工作
我是Linux Shell脚本的新手。我想通过Linux Shell脚本更改IP地址,并由PHP Web应用程序调用。 我已经完成了我的PHP Web应用程序和shell脚本。在它们组合在一起工作之前,我想测试Shell脚本是否可以正常运行。 我的Linux Shell脚本将存储7个变量,不包括$ 0(脚本名称): 网络接口文件(/etc/sysconfig/network-scripts/ifcfg-{XXX}) 旧IP地址 新的IP地址 旧子网掩码 新的子网掩码 老门户 新网关 我的PHP应用程序已经执行了大多数检查,因为我是Linux Shell脚本的新手,我不想在我的shell脚本上执行此操作。我的PHP应用程序可以确保数据正确并填充值。 因此,要运行此Shell脚本,请键入以下内容以查看结果: sh ./ipchanger.sh /etc/sysconfig/network-scripts/ens32 192.168.1.18 192.168.1.201 32 24 192.168.1.1 192.168.1.1 含义: 指定目标网络脚本文件。 将IP更改192.168.1.18为192.168.1.201。 将子网掩码更改255.255.255.255为255.255.255.0。 实际上它将运行以下命令: sudo sed -i -r "s/$currentIpAddress/$newIpAddress/g" $fileName sudo sed -i -r "s/$currentSubnetMask/$newSubnetMask/g" $fileName sudo sed -i -r "s/$currentGateway/$newGateway/g" …
1 linux  networking  bash  shell  sed 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.