如果我们使用,echo 1234 >> some-file
则文档说明输出已附加。
我的猜测是,如果 some-file 不存在,那么 O_CREAT 将创建一个新文件。如果>
使用,则 O_TRUNC 将截断现有文件。
的情况下 >>
:文件是否会被打开为 O_WRONLY(或 O_RDWR)并寻求结束并完成写入操作,模拟 O_APPEND?还是将文件作为 O_APPEND 打开,将其留给内核以确保发生附加?
我问这个是因为当输出文件来自 NFS 挂载点时,保存进程正在覆盖由 echo 插入的一些标记,并且 NFS 文档说服务器不支持 O_APPEND,因此客户端内核将不得不处理它。我猜保护进程正在使用 O_APPEND ,但不确定 bash>>
在 linux 上,因此在这里提出问题。
HP-UX *** B.11.31 U ia64 ***无限用户许可证
我想将当前目录中名为 abc.txt 的文件移动到名为 ./begperl 的目录。当我这样做时,我希望文件的移动版本被命名为 ab.txt。我想要的是从文件名中删除预定义的字符串并移动它,并根据第三个变量 = Y/ 删除原始文件N。我尝试过下面的oneliners但没有成功。
awk -v name=abc.txt -v dir=begperl 'BEGIN{ renamed_var=substr("c", "", name);system("mv " name "./"dir/renamed_var)}'
awk -v name=abc.txt -v dir=begperl 'BEGIN{ renamed_var=substr("c", "", name); print renamed_var}'
awk -v name=abc.txt -v dir=begperl 'BEGIN{ print substr("c", "", name) }'
awk -v name=abc.txt -v dir=begperl -v variable_two=substr("c", "", name){print variable_two}'
awk -v name=abc.txt -v dir=begperl -v variable_two=substr("c", "", name){print variable_two}'
Run Code Online (Sandbox Code Playgroud)
我唯一能工作的班轮是
awk -v name=abc.txt -v dir=begperl 'BEGIN{ system("mv " name " …
Run Code Online (Sandbox Code Playgroud) 除了一个将其输出到终端和另一个将其解压缩到文件这一明显的区别zcat/gunzip -c
之外,是否有区别?gunzip
我是从CPU利用率的角度来看的。我们的一位客户提到,他们希望有一个实用程序可以查看压缩文件的内容而无需解压缩。他们还给出了 的例子gzcat
,但我读了有关的内容gzcat
,但找不到明确的证据表明它比 更有效gunzip
。我可能会看到gzcat
使用比gunzip
. 还有其他改进吗?任何帮助表示赞赏。