我想遍历我当前位置的子目录并分别gzip每个文件。对于目录中的压缩文件,我使用forfilein*;dogzip"$file";done但这只适用于当前目录,而不适用于当前目录的子目录。我怎样才能重写上面的语句,以便它也压缩所有子目录中的文件? 最佳答案 除了find和gzip之外不需要循环或任何东西:find.-typef!-name'*.gz'-execgzip"{}"\;这将查找当前目录中和当前目录下所有名称不以.gz扩展名结尾的常规文件(即所有尚未压缩的文件)。它对每个文件单独调用gzip。编辑,根据来自未知用户的评论:花括
我想遍历我当前位置的子目录并分别gzip每个文件。对于目录中的压缩文件,我使用forfilein*;dogzip"$file";done但这只适用于当前目录,而不适用于当前目录的子目录。我怎样才能重写上面的语句,以便它也压缩所有子目录中的文件? 最佳答案 除了find和gzip之外不需要循环或任何东西:find.-typef!-name'*.gz'-execgzip"{}"\;这将查找当前目录中和当前目录下所有名称不以.gz扩展名结尾的常规文件(即所有尚未压缩的文件)。它对每个文件单独调用gzip。编辑,根据来自未知用户的评论:花括
假设我有以下脚本:-测试.sh#!/bin/bashcommand1#prints5linescommand2#prints3lines我用test.sh|head-n5运行脚本在这种情况下会发生什么?它会同时运行这两个命令吗?或者它会在command1之后停止吗?如果我用-n1调用它会怎样?背景:我可能问的是一个非常基本的问题,但实际上我注意到了一些有趣的事情。我的脚本(不同的脚本)正在处理7,000个文件,每个文件产生1行输出。完全运行脚本需要7分钟,但是执行head-n1会立即提示我,就像脚本在仅处理第一个文件后终止编辑:以下是我的脚本foriin$(lsfilepath);do
假设我有以下脚本:-测试.sh#!/bin/bashcommand1#prints5linescommand2#prints3lines我用test.sh|head-n5运行脚本在这种情况下会发生什么?它会同时运行这两个命令吗?或者它会在command1之后停止吗?如果我用-n1调用它会怎样?背景:我可能问的是一个非常基本的问题,但实际上我注意到了一些有趣的事情。我的脚本(不同的脚本)正在处理7,000个文件,每个文件产生1行输出。完全运行脚本需要7分钟,但是执行head-n1会立即提示我,就像脚本在仅处理第一个文件后终止编辑:以下是我的脚本foriin$(lsfilepath);do
我在写一个shell脚本时遇到了一个问题。有没有办法使用用户指定的文本编辑器打开文件? 最佳答案 用户选择的编辑器应该在$EDITOR中,但您仍然必须选择一个合理的默认值。"${EDITOR:-vi}"file.txt 关于linux-在bash中打开默认的文本编辑器?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/10725238/
我在写一个shell脚本时遇到了一个问题。有没有办法使用用户指定的文本编辑器打开文件? 最佳答案 用户选择的编辑器应该在$EDITOR中,但您仍然必须选择一个合理的默认值。"${EDITOR:-vi}"file.txt 关于linux-在bash中打开默认的文本编辑器?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/10725238/
Bashshell脚本区分大小写吗?变量date是否与DATE相同? 最佳答案 是的,它区分大小写,就像UNIX的其余部分一样。$date和$DATE是两个不同的变量。makefile和Makefile是两个不同的文件。-h和-H是两个不同的标志(通常)。 关于linux-Bash变量:casesensitiveornot?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1557
Bashshell脚本区分大小写吗?变量date是否与DATE相同? 最佳答案 是的,它区分大小写,就像UNIX的其余部分一样。$date和$DATE是两个不同的变量。makefile和Makefile是两个不同的文件。-h和-H是两个不同的标志(通常)。 关于linux-Bash变量:casesensitiveornot?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1557
我想在linuxPATH中添加一个小脚本,这样我就不必在实际放置在磁盘上的位置实际运行它。脚本非常简单,就是通过代理提供apt-get访问权限,我是这样写的:#!/bin/basharray=($@)len=${#array[@]}_args=${array[@]:1:$len}sudohttp_proxy="http://user:password@server:port"apt-get$_args然后我将其保存为apt-proxy.sh,将其设置为+x(chmod),当我进入放置该文件的目录时一切正常。我的问题是:如何将此apt-proxy添加到PATH以便我实际上可以像真正的ap
我想在linuxPATH中添加一个小脚本,这样我就不必在实际放置在磁盘上的位置实际运行它。脚本非常简单,就是通过代理提供apt-get访问权限,我是这样写的:#!/bin/basharray=($@)len=${#array[@]}_args=${array[@]:1:$len}sudohttp_proxy="http://user:password@server:port"apt-get$_args然后我将其保存为apt-proxy.sh,将其设置为+x(chmod),当我进入放置该文件的目录时一切正常。我的问题是:如何将此apt-proxy添加到PATH以便我实际上可以像真正的ap