标签: bash

需要隐藏符号链接而不隐藏它链接到的目录

我创建了一个符号链接(特别是符号链接,而不是 bash 无法遵循的 Finder 别名)到我的主文件夹中的目录,ln -s link $HOME/directory现在我希望隐藏 Finder 中的链接,所以我不必看它。通常我会chflags hidden link用来完成这个,但当然这会影响目录,而不是链接。我不能使用标准的前导点,因为链接本身的名称对于查找它的应用程序很重要,前导点会更改名称。

所以我的问题是,如何隐藏符号链接而不隐藏它链接到的目录或更改其名称?

编辑:我故意让我的问题含糊其辞,因为这是 Finder 的一个小实验,但这里有更多细节可以澄清我正在尝试做什么。

Finder 使用 $HOME/Desktop 文件夹作为桌面本身,无论是链接、别名还是完全不同的名为“Desktop”的文件夹(例如主文件夹本身),只要在 $HOME 目录中即可.

我创建了一个指向名为“Desktop”的主目录的符号链接,以便用我的主文件夹的内容填充 Finder 桌面的内容(如果您尝试此操作,它在您再次登录之前不会生效,也已完成) 10.6)。这当然也将符号链接本身放在我的桌面上,我不想在 Finder 窗口或桌面上看到它。如果我将它重命名为“.Desktop”以隐藏它,它会隐藏,但我的主文件夹和我的桌面之间的链接也会被破坏。

mac finder bash symbolic-link macos

11
推荐指数
2
解决办法
6242
查看次数

使用 bash 将任务置于后台

我知道你可以用 Bash 做后台工作foo &。但是,我知道将前台作业置于后台的最佳方法是执行Ctrl+z暂停它然后bg 1在后台恢复它。

有没有更快的方法?我不知道某些Ctrl+Something组合键?

bash

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

Bash 自动完成在文件名后添加尾部斜杠

我最近将我的系统从 Etch 升级到 Lenny。现在,当我使用自动完成功能时,文件名(而不是目录)会在命令行中以斜杠结尾。

它似乎与多个(所有?)命令有关。我尝试了一些:

aj@mmdev0:~/loadtest$ vi pyloadtools3.py/
aj@mmdev0:~/loadtest$ cat pyloadtools3.py/
aj@mmdev0:~/loadtest$ file pyloadtools3.py/
aj@mmdev0:~/loadtest$ ls -al pyloadtools3.py/
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

debian bash debian-lenny autocomplete

11
推荐指数
1
解决办法
9032
查看次数

Ubuntu 的 ls 可以显示 unicode 字符,但是 tree 不能,即使使用 tree --charset unicode

Ubuntu 10.04ls可以显示 unicode 字符,但tree不能显示,即使使用tree --charset unicodeutf8。有没有办法解决。 echo可以解释转义字符,除非cat list.txt | echo -e不起作用(list.txt来自 tree > list.txt

更新:tree -H www.somewhere.com可以输出unicode(应该是UTF-8)但现在看来这是唯一的方法——作为一个网页。

$ ls -R
.:
list2.txt  list.txt  ????????????????.txt  ??

./??:
??2.txt  ??.txt

$ tree --charset unicode
.
|-- list2.txt
|-- list.txt
|-- \344\271\205\346\234\252\345\234\250\351\201\212\350\241\214\345\240\264\345\220\210\351\234\262\351\235\242\347\232\204\345\211\215\347\270\275\347\265\261\346\235\216\347\231\273\350\274\235.txt
`-- \351\201\212\350\241\214
    |-- \345\244\247\345\256\2662.txt
    `-- \345\244\247\345\256\266.txt

1 directory, 5 files

$ tree --charset utf8
.
??? list2.txt
??? list.txt
??? \344\271\205\346\234\252\345\234\250\351\201\212\350\241\214\345\240\264\345\220\210\351\234\262\351\235\242\347\232\204\345\211\215\347\270\275\347\265\261\346\235\216\347\231\273\350\274\235.txt
??? \351\201\212\350\241\214
    ??? \345\244\247\345\256\2662.txt …
Run Code Online (Sandbox Code Playgroud)

bash unicode ls tree ubuntu

11
推荐指数
1
解决办法
4765
查看次数

平行壳环

我想处理很多文件,因为我这里有一堆内核,所以我想并行处理:

for i in *.myfiles; do do_something $i `derived_params $i` other_params; done
Run Code Online (Sandbox Code Playgroud)

我知道 Makefile解决方案,但我的命令需要 shell globbing 列表中的参数。我发现的是:

> function pwait() {
>     while [ $(jobs -p | wc -l) -ge $1 ]; do
>         sleep 1
>     done
> }
>
Run Code Online (Sandbox Code Playgroud)

要使用它,只需将 & 放在作业和 pwait 调用之后,参数给出并行进程的数量:

> for i in *; do
>     do_something $i &
>     pwait 10
> done
Run Code Online (Sandbox Code Playgroud)

但这并不能很好地工作,例如,我尝试使用 for 循环转换许多文件但给我错误并留下未完成的作业。

我不敢相信这还没有完成,因为关于 zsh 邮件列表的讨论现在已经很老了。那么你知道更好的吗?

bash zsh shell parallel-processing

11
推荐指数
3
解决办法
2万
查看次数

如何从控制台写入 KDE 的 OSD 或通知?

如何从 bash 脚本写入 KDE 的 OSD 或通知区域?我使用的是 KDE 4.5,基本上我想要的是我的脚本在运行时报告一些东西。由于我通过快捷方式运行脚本,我没有控制台输出,但我想在通知区域写入 OSD。

我知道并使用“osd_cat”,但这只会在屏幕上显示一些难看的文字。

谢谢。

kde bash notifications osd

11
推荐指数
2
解决办法
7184
查看次数

将击键发送到在不同 X 会话上打开的窗口的命令行方式

在我的主机上,我打开并登录了一个 Ubuntu 桌面。然后我也从远程计算机登录到这台机器,使用 X2go 创建一个新的 X 会话。我在原始会话中打开了一个 libreoffice 文件。我想保存这个文件并关闭它——但是来自远程机器!(两个会话都有相同的用户登录;如果需要,我可以 sudo)

我试过使用,xdotool search但无法找到窗口。有没有办法在第二次会议中做我想做的事?我可以看到进程,ps -A 我什至可以看到打开的文件lsof!如何对其进行“保存并关闭”?

linux bash x-windows xdotools

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

使用ssh知道哪个IP在linux中执行了某个命令

许多用户使用 ssh 访问一个服务器。我试图找出哪个用户执行了某个命令。

我可以知道当前访问服务器的用户列表,who 我也会知道使用history.

但是如何知道哪个用户cp file1.sh file2.sh在服务器中执行了命令?用户已执行命令并退出

linux ssh bash command-history

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

在最后一个命令中用反斜杠替换正斜杠

我已将命令cd C:\foo\bar\从 PowerShell复制到 Cygwin 并愚蠢地期望它执行。现在我想运行一个替代全部更换\/

$ !!:gs/\\/\/
bash: :gs/\\/\/: substitution failed
Run Code Online (Sandbox Code Playgroud)

不知道为什么我的替换失败了。

我也试过:

$ !!:gs/\\/q
Run Code Online (Sandbox Code Playgroud)

只是看看更换是否有问题。它不是。现在我很好奇!

为什么我会“替换失败”?

cygwin bash regex

11
推荐指数
2
解决办法
1611
查看次数

仪表板外壳的调试信号陷阱?

使用 bash shell,您可以在合成DEBUG信号上安装陷阱。这很有用,并且会在每个 shell 命令上执行您的函数或代码。例如:

$ trap 'logger -t shell "${BASH_COMMAND}"' DEBUG
Run Code Online (Sandbox Code Playgroud)

例如,这里的想法是将陷阱安装在放入的文件中,/etc/profile.d/bash-logger并让任何用户 shell 会话命令在发生时自动记录到系统日志中。这对于轻松跟踪远程命令也很有用。

查看 dash shell 源代码,我似乎明白没有这样的DEBUG信号可用。

是否有任何解决方法或替代方法可以使用破折号外壳实现相同的结果?

linux debian bash shell dash-shell

11
推荐指数
1
解决办法
886
查看次数