我对 qcow2 文件的实际大小有点困惑。
ls -alh VMs/ubuntu-mini.qcow2
-rw------- 1 root root 21G mar 31 23:15 VMs/ubuntu-mini.qcow2
du -h VMs/ubuntu-mini.qcow2
2,7G VMs/ubuntu-mini.qcow2
Run Code Online (Sandbox Code Playgroud)
我想将该文件复制到不同的分区(ext4)。看起来这个命令实际上复制了21G而不仅仅是我预期的2,7G。现在在新位置,这两个命令(du 和 ls)向我显示相同的大小 - 21G。
du -h /media/HDD0/VMs/ubuntu-mini.qcow2
21G /media/HDD0/VMs/ubuntu-mini.qcow2
ls -alh /media/HDD0/VMs/ubuntu-mini.qcow2
-rw------- 1 root root 21G mar 31 23:15 /media/HDD0/VMs/ubuntu-mini.qcow2
Run Code Online (Sandbox Code Playgroud)
复制 qcow2 文件的正确方法是什么?“cp”命令中是否有开关使其仅复制2,7G?
我需要创建从一个文件中读取行并检查该行是否存在于第二个文件中的脚本。如何处理文件中的特殊字符,例如:'、" 和 \?
第一个文件:
a.txt
aa
bb
cc
f
'f'
"g"
'h'
Run Code Online (Sandbox Code Playgroud)
第二个文件:
b.txt
cc
dd
'f'
"g"
g
h
Run Code Online (Sandbox Code Playgroud)
命令:
cat a.txt | xargs -I{} grep -w {} b.txt
Run Code Online (Sandbox Code Playgroud)
返回:
cc
'f'
'f'
"g"
g <- it shouldn't be there
h <- it shouldn't be there
Run Code Online (Sandbox Code Playgroud)
预期的:
cc
'f'
"g"
Run Code Online (Sandbox Code Playgroud)
在我的情况下,不应列出最后一项 (h),因为该项目不存在于 a.txt 文件中。只有'h'(单引号)。如何以通用方式处理此问题以防止将来出现意外情况?