小编gow*_*eon的帖子

为什么对 C 驱动器进行碎片整理会使我的可用磁盘空间增加 10 GB?

我使用Defraggler对 100 GB C:\ 驱动器上的可用空间进行碎片整理,该驱动器已满 85 GB。碎片整理后,驱动器显示只有 75 GB 已满。10 GB 的可用空间是如何神奇地出现的?我丢失了任何数据吗?

我在整理碎片之前进行了磁盘清理,我的垃圾只有大约 11 MB,所以不可能是因为清理了临时文件。请注意,我对“可用空间”进行了碎片整理,这意味着它应该将空块重新排列为连续的。

defragment ntfs disk-space

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

使用管道将两个参数传递给命令

通常,我们只需要传递一个参数:

echo abc | cat
echo abc | cat some_file -
echo abc | cat - some_file
Run Code Online (Sandbox Code Playgroud)

有没有办法传递两个参数?就像是

{echo abc , echo xyz} | cat
cat `echo abc` `echo xyz`
Run Code Online (Sandbox Code Playgroud)

我可以先将两个结果存储在一个文件中

echo abc > file1
echo xyz > file2
cat file1 file2
Run Code Online (Sandbox Code Playgroud)

但是我可能会不小心覆盖一个文件,这是不行的。这是进入一个非交互式脚本。基本上,我需要一种方法来将两个任意命令的结果传递给cat而不写入文件。


更新:抱歉,该示例掩盖了问题。虽然{ echo abc ; echo xyz ; } | cat似乎确实有效,但输出是由于echos 而不是cat.

一个更好的例子是{ cut -f2 -d, file1; cut -f1 -d, file2; } | paste -d,它不能按预期工作。

file1:
a,b …
Run Code Online (Sandbox Code Playgroud)

bash shell-script pipe command-line-arguments bash-scripting

27
推荐指数
1
解决办法
5万
查看次数

较少模拟 TTY 以保留管道颜色输出

当您通过管道less传输某些内容时,程序通常会丢弃颜色代码,因为它不会输出到 TTY。因此,您必须添加--color=always选项才能使其工作。

ls -l --color=always | less
grep -R asdf --color=always | less
Run Code Online (Sandbox Code Playgroud)

更糟糕的是,有时甚至不支持该选项,因此实际上无法强制将颜色输出到管道。

有没有(相对)简单的方法来减少对 TTY 的模拟,这样我就不必--color=always在通过管道传输到每个程序时指定每个程序,并且它会在可能的情况下自动显示颜色输出?

bash colors tty less pipe

8
推荐指数
1
解决办法
4055
查看次数