Tag: bash

将多行STDINinput送入命令

我有一个脚本,输出git存储库的SSHurl,如下所示: git@example.com:namespace/project.git git@example.com:another_namespace/some_other_project.git 我想为每一行运行命令git clone (或其他命令)。 我试着将它输送到xargs ,但是我要么在一行中获得输出,要么将多行input转储为单个命令。 你如何通过pipe道在每一行上运行一个任意的命令?

什么是Bash命令来创build一个硬链接到OS X中的一个目录?

如何在OS X中创build一个指向目录的硬链接(而不是符号链接或Mac OS别名)? 有“目标目标”命令,但只有当目标是文件时才起作用。 我知道Mac OS与其他Unix环境不同,它允许硬链接到文件夹(例如Time Machine),但是我不知道如何自己做。 我也意识到,使用目录硬链接不是“最佳实践”,因为它可以导致一些程序扫描树无限recursion。

当它的path被作为一个命令input时,cd到一个目录(而不是“foo是一个目录”错误)

我讨厌什么时候bash给我“呃!” 那种错误: foo$ ./bar -bash: ./bar: is a directory 我曾经喜欢AmigaOS shell,其中目录的“执行”仅仅意味着将其设置为当前目录: foo$ ./bar bar$ 在bash可能吗? (当然没有无限的别名)。

Bash脚本创build大量的目录系列

我需要创build一个Bash脚本来进入每个用户的home文件夹,找出一个wp-content文件夹,在它下面创build一个目录上传 ,然后chmod 0756上传 。 我如何做到这一点? 我想我需要使用正则expression式/正则expression式使用查找 ,然后告诉它运行结果上的另一个bash脚本。

如何从Web浏览器运行Linux bash脚本?

您好我也有Web服务器。 我用vi编辑器做了一个简单的bash脚本,它会打开文件,然后添加一些行到最后它会自动保存…之后,2-3 linux命令将作为一个特定的用户运行。 现在我想从网页浏览器做同样的事情,所以我需要为此做些什么? html?perl?python?cgi?….?这是简单的方法吗?

如何检查我用来编译程序的命令?

可能重复: 如何获取上次使用的./configure参数? 前段时间在Centos下,Bash从源文件编译了一个程序。 现在我需要再次编译一个新的标志。 有什么方法可以找出我上次在Linux Centos下编译这个程序的命令吗?

如何将命令的控制台输出redirect到日志文件?

我的操作系统是RHEL5。 我想要将由以下数据库命令生成的控制台输出指向日志/文件。 psql mydb mydbuser -c "VACUUM ANALYZE VERBOSE" 我试过下面的命令,并没有按预期工作。 但它是打印输出到terminal控制台。 psql mydb mydbuser -c "VACUUM ANALYZE VERBOSE" > vacuum.log psql mydb mydbuser -c "VACUUM ANALYZE VERBOSE" | tee vacuum.log 在这种情况下,这个命令产生的输出不是标准的input/输出/错误吗? 注: psql是PostgreSQL的基于terminal的前端。 它使您能够以交互方式键入查询,将其发送到PostgreSQL,并查看查询结果。

非阻塞bashredirect

有谁知道如何redirect程序的输出,从bash脚本运行到命名pipe道在非阻塞模式('O_NONBLOCK'标志设置)?

列出所有空文件夹

我有一堆嵌套的文件夹。 大多数文件夹包含文件 有些包含数十万个文件。 有些是空的。 我想获得所有空文件夹的列表。 但是,当我运行: find -type d -empty 运行需要很长时间,比运行find -type d要花费很多时间。 我怀疑-empty正在检查所有文件,看它们是否为空,然后-type d正在跳过这些文件。 那么在那里: 1)一种优化发现的方法,以便它将a)find所有的文件夹,然后b)列出空的那些? 要么 2)一个不同的命令(或命令),我可以用来得到这个列表?

Bash并行化CPU密集型进程

tee将stdin转发给指定的每个文件,而pee则是相同的,但是对于pipe道。 这些程序将stdin的每一行发送到指定的每个文件/pipe道。 然而,我正在寻找一种方式来“平衡”标准input到不同的pipe道,所以一行发送到第一个pipe道,另一行到第二个,等等。如果收集pipe道标准输出也是很好的也成为一个stream。 这个用例是一个逐行工作的CPU密集型进程的简单并行化。 我在一个14GB的文件上执行sed ,如果我可以使用多个sed进程,它可以运行得更快。 命令是这样的: pv infile | sed 's/something//' > outfile 要并行化,最好的情况是,如果GNU parallel支持这样的function(由–demux-stdin选项组成): pv infile | parallel -u -j4 –demux-stdin "sed 's/something//'" > outfile 然而,没有这样的select, parallel一直使用它的stdin作为它所调用的命令的参数,比如xargs 。 所以我试了一下,但是速度很慢,原因很明显: pv infile | parallel -u -j4 "echo {} | sed 's/something//'" > outfile 我只是想知道是否还有其他方法可以做到这一点(我自己编写的代码很短)。 如果有一个“负载平衡”的tee (我们称之为lee ),我可以这样做: pv infile | lee >(sed 's/something//' >> […]

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.