使用du命令仅显示文件名与MB大小,如何去除文件路径?
解决du命令输出仅显示文件名和MB大小的问题
你的需求完全可以实现,下面给你几个实用的方法:
方法1:直接切换目录(最简单)
不用额外处理输出,先cd到文件所在的目录再执行du,输出自然就只显示文件名:
cd /home/user/test && du -s -BM test_file_check
输出会变成:0M test_file_check,一步到位。
方法2:用sed替换路径
如果不想切换目录,用sed把输出里的前缀路径替换掉就行,注意斜杠要转义:
du -s -BM /home/user/test/test_file_check | sed 's/\/home\/user\/test\///'
这个命令会把输出中的/home/user/test/部分清空,只保留后面的文件名。
方法3:用basename提取文件名
配合awk和basename命令,专门提取文件名部分,逻辑更清晰:
du -s -BM /home/user/test/test_file_check | awk '{print $1, basename($2)}'
basename会自动把完整路径里的文件名提取出来,再和前面的大小拼接输出。
总结一下:sed完全可以实现你的需求,而直接切换目录的方法最简洁,适合脚本里使用。
内容的提问来源于stack exchange,提问作者Utelys
相关产品推荐
相关产品推荐

