Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

14
如何删除目录中的所有文件?
我正在尝试删除目录中的所有文件和子目录。我曾经rm -r删除所有文件,但我想删除所有文件和子目录,顶层目录本身除外。 例如,我有一个顶级目录,例如images。它所包含的文件header.png,footer.png和一个子目录。 现在我想删除header.png,footer.png和子目录,但不是images。 我如何在Linux中做到这一点?




2
如何将命令的输出分配给shell变量?
我想将表达式的结果分配给变量并将其与字符串连接,然后回显它。这是我得到的: #!/bin/bash cd ~/Desktop; thefile= ls -t -U | grep -m 1 "Screen Shot"; echo "Most recent screenshot is: "$thefile; 但是输出: Screen Shot 2011-07-03 at 1.55.43 PM.png Most recent screenshot is: 因此,它似乎没有分配给$thefile,而是在执行时被打印。


5
是否有命令列出计算机上所有打开的显示器?
当SSH在本地本地进入我的计算机时(不要问,这是一种解决方法),如果不运行,我将无法启动图形应用程序: export DISPLAY=:0.0 如果先运行此程序,然后运行图形应用程序,那么一切都会顺利进行。如果不行,那就行不通了,没有显示器要附加。 是否有命令列出机器上所有可用的显示(即:所有可能的值)?
76 ssh  x-server 

10
如何使用grep标准错误流(stderr)?
我正在使用ffmpeg获取音频剪辑的元信息。但是我无法重复。 $ ffmpeg -i 01-Daemon.mp3 |grep -i Duration FFmpeg version SVN-r15261, Copyright (c) 2000-2008 Fabrice Bellard, et al. configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib --mandir=/usr/share/man --arch=i386 --extra-cflags=-O2 ... 我检查了一下,将此ffmpeg输出定向到stderr。 $ ffmpeg -i 01-Daemon.mp3 2> /dev/null 因此,我认为grep无法读取错误流以捕获匹配的行。我们如何启用grep读取错误流? 使用nixCraft链接,我将标准错误流重定向到标准输出流,然后grep工作了。 $ ffmpeg -i 01-Daemon.mp3 2>&1 | grep -i Duration Duration: 01:15:12.33, start: 0.000000, …

3
如何将所有行从少写到文件?
我已经通过管道将命令发送到less,现在我想将命令的输出保存到文件中。我怎么做? 在这种情况下,我不想使用tee,我想要一个更少的解决方案,这样,如果我忘记使用,就不必重新运行长时间运行的命令tee。 这个问题与此类似,唯一的区别是我要保存所有行,而不是子集:将行从少写到文件
76 less 


6
使用while循环SSH到多个服务器
我有一个文件servers.txt,其中包含服务器列表: server1.mydomain.com server2.mydomain.com server3.mydomain.com 当我逐行读取文件while并回显每一行时,所有文件均按预期工作。所有行均已打印。 $ while read HOST ; do echo $HOST ; done < servers.txt server1.mydomain.com server2.mydomain.com server3.mydomain.com 但是,当我要SSH到所有服务器并执行命令时,突然我的while循环停止工作: $ while read HOST ; do ssh $HOST "uname -a" ; done < servers.txt Linux server1 2.6.30.4-1 #1 SMP Wed Aug 12 19:55:12 EDT 2009 i686 GNU/Linux 这仅连接到列表中的第一台服务器,而不连接到所有服务器。我不明白这里发生了什么。有人可以解释一下吗? 这甚至更陌生,因为使用for循环可以正常工作: …




2
在zsh中的$ PATH缓存中重建自动完成索引(或任何它称呼的)和二进制文件
安装新软件后,已经打开的带有zsh的终端将不知道新命令,并且无法为这些命令生成自动完成功能。显然打开一个新终端可以解决此问题,但是可以重建索引(或您所谓的索引),以便自动完成功能可以在旧终端上运行吗? 我尝试过,compinit但是没有帮助。另外,有一种不依赖于shell的方法吗?最好也有一种方法来验证答案(除了卸载并重新安装之外)。 我的意思是在输入命令名称的几个字符后,我可以按Tab,zsh其余的操作应提取全名。
75 zsh  autocomplete 

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.