Articles of shell

Linux:以recursion方式查找字典中的文件列表

我有一个文本文件每行一个文件名: Interpret 1 – Song 1.mp3 Interpret 2 – Song 2.mp3 … (约200个文件名) 现在我想要为这个Filenamesrecursion地search一个文件夹来获取Filenames.txt中每个文件名的完整path。 这个怎么做? 🙂 (目的:复制文件到我的MP3播放器,但其中一些是坏的,我想重新复制全部,而不用花费我的音乐文件夹研究他们的小时)

Bash:将来自多个并发命令的stdout分解成列

我在bash脚本中使用单个&符运行多个命令,如下所示: commandA & commandB & commandC 他们每个都有自己的stdout输出,但是他们都混合在一起,洪水控制台不协调混乱。 我想知道是否有一个简单的方法来pipe输出到自己的列…使用column命令或类似的东西。 即。 就像是: commandA | column -1 & commandB | column -2 & commandC | column -3 这种事情是新的,但从最初的挖掘看来,像pr这样的东西可能是票吗? 或column命令…?

RM无法删除以 – 开头的文件

我有一个脚本创build文件,有时他们最终有2个破折号在开始,有没有什么办法删除它们MV也不工作 这是我得到的错误 $ ls –1355509766.jpg $ rm –1355509766.jpg rm: illegal option — – usage: rm [-f | -i] [-dPRrvW] file … unlink file $ rm "–1355509766.jpg" rm: illegal option — – usage: rm [-f | -i] [-dPRrvW] file … unlink file

如何在shell脚本中操作数组

我想我的脚本定义一个空的数组。 如果预定义条件成立,则应该添加数组值。 为此我所做的是 declare -a FILES file_count=0 if [ "$file_ext" != "$SUPPORTED_FILE_TYPE" ] ; then echo "$file_ext is not supported for this task." else $FILES[$file_count] = $filename file_count=$file_count+1 fi 当执行这个脚本时,我得到了这样的错误 linux-softwares/launchers/join_files.sh: 51: [0]: not found

用shell脚本启动和杀死java应用程序(Debian)

我是UNIX的新手。 我想用这样的脚本启动我的Java应用程序: #!/bin/sh java -jar /usr/ScriptCheck.jar & echo $! > /var/run/ScriptCheck.pid 这应该是工作。 它确实运行了应用程序,它确实写入了pid文件。 但是当我尝试用包含以下内容的不同脚本来停止进程: #!/bin/sh kill -9 /var/run/ScriptCheck.pid 控制台给了我这个错误: bash: kill: /var/run/ScriptCheck.pid: arguments must be process or job IDs 我最好的猜测是,我没有在停止脚本中写入正确的代码,也许没有给出正确的命令来打开.pid文件。 任何帮助将非常感激。

根据扩展名将文件移动到目录

我是Linux新手。 我想写一个shell脚本,将文件移动到某些文件夹的基础上扩展名 ,例如在我的下载文件夹,我有所有文件的混合文件types。 我写了下面的脚本 mv *.mp3 ../Music mv *.ogg ../Music mv *.wav ../Music mv *.mp4 ../Videos mv *.flv ../Videos 如何将文件添加到此文件夹时自动运行? 现在我必须每次手动运行脚本。 还有一个问题,有没有什么办法来结合这两个陈述 mv *.mp3 ../../Music mv *.ogg ../../Music 成一个单一的声明? 我尝试使用|| (C编程“或”运算符)和逗号,但他们似乎没有工作。

$ PATH优于别名

我对Linux和Unix比较陌生。 在互联网的帮助下,我终于弄清楚我的.bashrc $PATH和别名是如何工作的。 但我真的找不到任何描述什么时候使用哪个。 假设我在Library / Frameworks中安装了Python3.3,可执行文件是/Library/Frameworks/Python.framework/Versions/3.3/bin/python3 ,但是我想通过在terminal中inputpython3来执行python 3.3。 当我理解正确时,至less有三种方法可以实现这一点: 1)我在我的.bashrc中修改$ PATH: export PATH=/Library/Frameworks/Python.framework/Versions/3.3/bin:${PATH} 2)我在我的.bashrc中设置了一个别名: alias python3=/Library/Frameworks/Python.framework/Versions/3.3/bin 3)创build一个符号链接(符号链接): ln -s /Library/Frameworks/Python.framework/Versions/3.3/bin /usr/local/bin 你会怎么说(从你的经验)是“推荐”的方式?

壳GNU-Screen -X的东西问题

OPTIONS="java -Xms1024M -Xmx1024M -jar craftbukkit.jar" PROCESS=server01 screen -dmS $PROCESS $OPTIONS nogui # Starting the application screen -x $PROCESS -X stuff `printf "stop\r"` # Closing the application screen -x $PROCESS # Attaching to the terminal of the application 应用程序在一开始工作正常,但是我得到的问题stuff 'printf "stop/r"'我刚启动似乎不工作,等待一段时间,然后尝试用上面的命令停止它。 但奇怪的是,如果我做了screen -x $PROCESS并分离( ctrl-A & ctrl-D ),然后使用Stop命令,它确实可以工作。 所以有没有办法来stuff printf没有screen -x $PROCESS ?

grep命令在每次匹配后添加结束行

你有什么想法如何添加一些结束线 "==========================================================================================" 每场比赛之后 tail -f error.log -n 2000 | grep -B 10 -A 25 'Exception:' 这个命令打印所有exception日志,但我喜欢看到每个exception日志一个分隔线。

如何轻轻地杀死Linux / OS X上的Firefox进程

我使用Firefox做了一些自动化操作,虽然我可以从shell打开Firefox窗口,但我无法正确终止它。 如果我用kill -3或者kill -2命令kill Firefox进程,那么下次我打开一个新的Firefox窗口时,会询问我是否想以安全模式运行。 我明白,调用kill -9可能会混淆Firefox,所以它会尝试运行在安全模式,但-3应该没问题。 你有什么想法如何轻轻地告诉Firefox正确closures?