我知道这可以做到,因为我以前在以前的服务器上做过,但我忘了怎么做,而且网络搜索也没有找到结果。
我知道 tmpfs 是什么,你不应该删除它。我想做的是隐藏它。基本上我做了一些修改输出的事情,这样当你运行 df 命令时它会从输出中排除 tmpfs,但我忘记具体是怎么做的了。
我如何才能在 df 输出中隐藏 tmpfs?再次强调,不是要删除或禁用 tmpfs,而只是在 ssh 输出中隐藏它。当我添加许多驱动器时,看到它尤其令人讨厌。
更新:我能够在我保存的文件中找到执行我想要的命令,但现在我需要知道如何将其作为别名构建到 .bashrc 中,以便每当我输入时:
df -h
它确实发送:
df -Th| grep -Ev '(udev|tmpfs)'
编辑:好的,我确实想出了一些办法。我无法对完整的 执行此操作df -h
,但我可以将其添加到 的别名中df
,方法是将其添加到 .bashrc:
alias df="df -Th| grep -Ev '(udev|tmpfs)'"
好吧,最奇怪的事情发生了。在我将此命令添加到 .bashrc 之后,现在,即使我完全删除了同一行,它也完全修改了该df
命令,因此即使我将其放入,df -h
它仍然会隐藏所有 tmpfs。我不确定这是否是暂时的,但我在 ssh 中重新加载了 .bashrc,但所有 tmpfs 仍然被隐藏。
然后我发现恢复它的唯一方法是将此行重新添加到 .bashrc 中
alias df="df -Th| grep -Ev '(none)'"
现在 df 又可以正常运行了。所以,问题似乎已经解决了。
答案1
这自由度来自 GNU coreutils 有这个选项:
-x, --exclude-type=TYPE -- limit listing to file systems not of type TYPE
你可以运行df -x tmpfs因此你会得到这个结果:
Filesystem 1K-blocks Used Available Use% Mounted on
udev 3993228 0 3993228 0% /dev
/dev/sdb2 113298660 9471544 98025696 9% /
/dev/sdb1 523244 3484 519760 1% /boot/efi
- 如您所见,列表中省略了 tmpfs。
答案2
解决方案是写入一行来重写 df。但是,这会稍微改变输入内容,df
使其真正输出df -Th
更易于阅读的输出。
# remove all tmpfs from all df output (you must use the next info to revert df to behave normally)
alias df="df -Th| grep -Ev '(udev|tmpfs)'"
# to revert df to behave normally, remove the above section and uncomment the below line:
# alias df="df -Th| grep -Ev '(none)'"
我希望这能对某些人有所帮助,因为我对 tmpfs 输出很恼火,当我检查输出时,我不需要看到这些df
输出,因为我在一些服务器上有很多驱动器,查看我经常检查的许多驱动器和使用情况会更清晰。在我解决这个问题之前,tmpfs 困扰了我一年多,所以我希望它也能帮到你。
答案3
:~$ ssh 192.168.0.19 "df -h | grep -E \"sd[a-z]|vg\""
[email protected]'s password:
/dev/sda2 464G 130G 335G 28% /
/dev/sdb1 466G 208G 258G 45% /home
/dev/sda1 1.9G 383M 1.4G 22% /boot
:~$
在这种情况下,我更喜欢的想法是考虑反转问题...输出需要的行而不是屏蔽不需要的行......使用这种方法,您将来就无法发现意外/未知的模式。
当然,您可以在 grep 中添加逻辑卷的具体情况;nfs 等等。
答案4
简单的解决方法。在可执行路径的某个位置创建以下单行脚本...
df $1 $2 $3 $4 | grep -v tmpfs
我将其命名为 df_override 并将其放在 /usr/bin 中
然后像这样为其添加别名...
# alias df='df_override '
就是这样!现在您可以使用 df 而不会丢失其开关,它将正常运行,只是它不会显示 tmpfs 挂载。