我在一个有很多遗留 shell 脚本魔法的环境中工作。在命令行中大量使用的一件事是 bash 函数,这些函数来自某个文件中包含的某个文件,这些文件包含在某个文件中……包含在我的 .bash_profile 中。有没有办法在不通过 5 个级别的包含跟踪它们的情况下获得这些函数的定义甚至更好的定义位置?
如何让 vimdiff 显示被区分的文件的全部内容?我希望差异的颜色突出显示,但仍希望查看整个文件,即相同的部分。
在 中bash,我有时想串行运行多个命令,不想在键入新命令之前等待它们完成。所以我做这样的事情:
cmd1; cmd2; cmd3
不幸的是,其中一个命令可能会失败。在这种情况下,我想停下来。有没有一种简单的方法可以做到这一点,但是如果前一个命令的退出代码为 0,那么我只能继续运行这些命令?
有没有办法在 crontab 中的某个工作日的某个开始时间和某个结束时间之间指定每 5 分钟运行一次的作业?
更新 我认为我的开始和结束时间不是固定时间是相关的。因此,在小时列中指定 9-5 是不够的。我要 9:30-17:30。
所以scp -q file host:file 和scp -q host:file file都安静,即不给进度表。但是当我运行时scp -q host1:file host2:file,我仍然会收到进度表和一条Connection to host1 closed.消息。进度表可以通过重定向stdout到/dev/null(虽然我不想必须这样做)来摆脱,但是连接关闭消息出现stderr,我绝对想保留,以防出现真正的错误。我怎样才能让 scp 安静?我必须跑ssh host1 "scp -q file host2:file"吗?
假设我有一个指向另一个链接的链接,该链接指向另一个链接,等等。我不确定有多少级别的链接。查看所有这些链接的最终目标的巧妙命令行方式是什么?
我有一些当前已被 gzip 压缩的大文件,我想对它们进行 xz。我想设置一个脚本来执行此操作,但我要小心不要丢失数据,即我永远不应该删除 gzipped 版本,除非 xz 版本确实创建正确。由于这些是大文件,我也不想先将文件解压缩到磁盘。我在想一个管道set -o pipefail; gzip -dc file.gz | xz > file.xz && rm file.gz可能接近我想要的。这样做的正确方法是什么?这是否保证可以捕获在删除最终文件之前发生的任何故障?
有什么好的命令行技巧可以判断.gz文件是否真的是 gzip 压缩的,而不是只是以这种方式命名的非 Gzip 文件?
我在 mac os x 10.6.5 上运行 firefox 3.6.12。我开始使用 HTTPS Everywhere 并且 firefox 变得几乎无法使用。它开始是一些网站加载缓慢,我可以想象这是使用 https 的结果。但是即使是已经加载的页面也会很慢,向下滚动页面时 Firefox 会挂起,等等。我禁用了 HTTPS Everywhere,问题就消失了。这只是插件,还是可能发生其他事情?
有一个可执行文件通常由用户 A 和作者在一个目录中运行,该目录只能由用户 A 读取、写入等。是否可以允许同一组中的用户 B 以用户 A 的身份运行可执行文件,以便它写入相同的内容?目录等,而用户 B 不知道用户 A 的密码并且无法访问 root(即无法使用 visudo)?
我有一些日志,我想少读一些。不幸的是,散布在其他文本文件中的是一些非 ascii 字符,它们较少显示为突出显示的垃圾。这真的很烦人。
如何摆脱突出显示?
可能的重复:
Unix:以破折号开头的文件,-
不知何故,我最终得到了一个名为“-r”的文件。如何删除它?rm -r 不起作用。我试过 'rm -i `ls -a`' 来遍历文件名,但它没有提示我删除这个。
编辑一个非常hacky 的方法是使用python 的os.unlink 函数。那行得通,但我很想听听其他方式。
我想使用类似的命令
plot 'datafile.gz' u 1:2
在 gnuplot 中用于 gzip 压缩的数据文件。当然,gnuplot 确实看到该文件已被 gzipped 并为我解压缩。有没有办法让 gnuplot 直接处理 gzipped 文件,而不必先将其解压缩到磁盘?