我想在文件创建时对其进行监控。因此我使用了此命令
ls -hal ./file |awk '{print $5}'
它给出了我正在寻找的文件的大小。我使用它是awk
因为不需要其他东西,只需要文件大小。
但我无法使用这个watch
命令,因为如果我尝试
watch ls -hal ./file |awk '{print $5}'
然后 watch 仅接受ls -hal ./file
并将其通过管道传输到awk
,不提供任何输出。
如果我尝试
watch "ls -hal ./file |awk '{print $5}'"
然后它会变得奇怪,显示错误的命令和整个输出。
Every 2.0s: ls -hal ./file |awk '{print }' Sun Jul 20 15:52:18 2014
-rw-rw---- 1 aditya aditya 1.7K Jul 20 15:52 ./file
$5
您可以看到awk 命令中没有。
进一步引用会产生各种类似的错误。
那么引用该命令的正确方法是什么?
答案1
一个选择是逃脱在$
你的awk
表情中
watch "ls -hal ./file |awk '{print \$5}'"
stat
或者,你可以通过使用而不是解析输出来完全避免这个问题ls
watch stat -c '%s' ./file
答案2
使用以下命令:
watch 'ls -hal ./file|cut -d " " -f 5'
如果你想突出差异比,
watch -d 'ls -hal ./file|cut -d " " -f 5'
这将为您提供您想要的工作!