Questions tagged «bash»

Bash是Bourne Again SHell,它是经典Unix sh(shell)的继承者。

3
我可以使用rsync创建仅更改文件的列表吗?
我在bash脚本中使用rsync来使文件在一些服务器和NAS之间保持同步。我遇到的一个问题是尝试生成rsync期间已更改的文件列表。 这个想法是,当我运行rsync时,我可以将已更改的文件输出为文本文件-希望在内存中有一个数组-然后在脚本存在之前,我只能对更改后的文件运行chown 。 有没有人找到执行此类任务的方法? # specify the source directory source_directory=/Users/jason/Desktop/source # specify the destination directory # DO NOT ADD THE SAME DIRECTORY NAME AS RSYNC WILL CREATE IT FOR YOU destination_directory=/Users/jason/Desktop/destination # run the rsync command rsync -avz $source_directory $destination_directory # grab the changed items and save to an array …
26 bash  scripting  rsync 


3
将文件的所有者权限复制到组权限
如何将文件的用户/所有者权限复制到其组权限? 例如,如果权限为755,我希望它们变为775。 澄清度:755-> 775 123-> 113 abc-> aac 如果我可以递归地对目录中的所有文件执行此操作,那么将有好处。 (也就是说,对于每个文件,所有者权限都将复制到组权限。每个文件可能具有不同的权限。)

3
写入后台进程的标准输入
我在Ubuntu 10.04机器上,并通过ssh在后台启动了服务器(myserver&)。它运行良好,但是我需要一种方法来获取服务器的标准输入,因为控制服务器的唯一方法就是通过此方法。 有什么方法可以获取已经运行的进程的标准输入,以便我可以对其进行写入(并希望阅读其标准输出)?显然,如果我现在要这样做,我将以FIFO重定向到stdin来开始,但是不幸的是,现在这样做有点晚了。 有任何想法吗?

6
确定文件是否正在写入中?
我需要部署一个自动过程(通过1分钟的cron脚本),该过程在特定目录中查找tar文件。如果找到tar文件,则将其解压缩到适当的位置,然后删除该tar文件。 tar文件会通过SSH自动从另一台服务器复制到此服务器。在某些情况下,tar文件非常大,其中包含很多文件。 我期望遇到的问题:如果将tar文件复制到服务器上花费的时间超过1分钟,并且cron脚本每分钟运行一次,它将看到.tar.gz文件并尝试执行解压缩它,即使tar文件仍在写入过程中。 有什么方法(通过bash命令)测试当前是否正在写入文件,或者仅是部分文件等? 我想到的一种替代方法是,将文件复制为其他文件扩展名(如.tar.gz.part),然后.tar.gz在传输完成后重命名为。但是我认为我会尝试找出是否只有一种方法可以首先在命令行上确定文件是否完整...有任何线索吗?
25 linux  bash  tar 

4
如何为Debian中的所有用户设置PATH?
我有一个Debian Lenny服务器,我希望www-data用户/usr/local/zend/bin在其PATH中使用它,因此它可以在cron中执行脚本,如www-data。 如何添加/usr/local/zend/bin到PATH,以便www-data可以在中执行文件/usr/local/zend/bin?
25 linux  debian  bash 



9
如何从STDIN读取多行到一个变量中?
我一直在搜寻这个问题无济于事。我正在这里使构建过程自动化,而我要做的就是获取版本号和对构建的简短描述,该描述可能是多行的。运行该系统的系统是OSX 10.6.8。 我已经看到了从使用CAT到根据需要处理每一行的所有内容。我不知道该使用什么以及为什么使用。 尝试次数 read -d '' versionNotes 如果用户必须使用退格键,则会导致输入乱码。另外,也没有终止输入的好方法,因为^ D不会终止,而^ C只会退出进程。 read -d 'END' versionNotes 可以...但是如果需要退格键,输入仍会显示乱码。 while read versionNotes do echo " $versionNotes" >> "source/application.yml" done 无法正确结束输入(因为我来不及查找与空字符串匹配的内容)。
24 bash  scripting 

4
如何逃脱!密码?
一个人如何逃避密码中的感叹号: $ mysql -umyuser -pone_@&!two -bash: !two: event not found 尝试使用明显的反斜杠没有帮助: $ mysql -umyuser -pone_@&\!two [1] 22242 -bash: !two: command not found name@domain.com [~]# ERROR 1045 (28000): Access denied for user 'myuser'@'localhost' (using password: YES) 我所有的Google搜索都表明反斜杠会有所帮助,但没有帮助。没有办法使用此问题中建议的引号。该行将在.bashrc别名中使用。不用担心,此处显示的用户名和密码仅是示例,不用于生产!
23 linux  mysql  bash 

2
Will Ansible将阻止在Shell脚本中执行'rm -rf /'
这是基于这里的骗局问题。所描述的问题是具有一个bash脚本,其中包含以下内容: rm -rf {pattern1}/{pattern2} ...如果两个模式都包含一个或多个空元素,则将扩展到至少一个实例rm -rf /,假设原始命令已正确转录并且OP正在进行括号扩展而不是参数扩展。 在OP 对骗局的解释中,他指出: 该命令是无害的,但似乎几乎没有人注意到。 Ansible工具可以防止这些错误,但是似乎没人知道,否则他们将知道我所描述的事情不会发生。 因此,假设您有一个rm -rf /通过大括号扩展或参数扩展发出命令的shell脚本,那么使用Ansible是否会阻止该命令执行,这是真的吗?如果是的话,它将如何执行? rm -rf /只要您使用Ansible进行root特权执行,是否真的“无害”?
23 linux  bash  ansible  rm 

2
Bash脚本倒计时5分钟,单行显示[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 6年前关闭。 我想倒数5分钟,每秒更新一次,并在同一行显示结果。使用Bash脚本甚至可以做到吗?
23 bash 

3
sed用单个空格替换所有制表符和空格
我得到了如下字符串: test.de. 1547 IN SOA ns1.test.de. dnsmaster.test.de. 2012090701 900 1000 6000 600 现在我想用一个空格替换记录之间的所有制表符/空格,以便我可以轻松地将其与 cut -d " " 我尝试了以下方法: sed "s/[\t[:space:]]+/[:space:]/g" 和各种变体,但无法正常工作。有任何想法吗?

4
bash脚本:如果返回错误,则重复命令
我想创建一个循环,如果返回错误,则重复ncftp传输。 我有点不确定如何在循环中使用退出代码变量。这样的事情行吗? until [$? == 0]; do ncftpput -DD -z -u user -p password remoteserver /remote/dir /local/file done
23 bash 


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.