最近在用 winscp ,想使用 自定义命令 来查看选中的目录大小(包含子目录)
主要是 winscp 自带的计算速度太慢
假如有目录 aaa,执行 du -sh aaa 输出 652K aaa
我添加了一个自定义命令 du -sh "!" > "!"-size.txt
执行后,当前目录下生成 aaa-size.txt 内容为 652K aaa
有没有什么方法可以把输出结果作为重定向文件的文件名
如上述命名生成的文件名直接为 aaa-size-652K.txt
google 搜索了半天,没搜出来,可能关键字不对.
先把输出赋值给变量,然后在创建文件时使用变量呗
谢谢回答先. 好像可以,我去试试先
这样喵?
touch $(du -sh aaa | cut -d " " -f 2)-size-$(du -sh aaa | cut -d " " -f 1).txt
这个好,但是会生成三个文件 aaa.txt, 652K, aaa-size-652K 求完美
可能是跟 du -sh aaa 的输出有关,假设输出是 652K aaa ,作为测试
命令 touch $(du -sh aaa | cut -d " " -f 2)-size-$(du -sh aaa | cut -d " " -f 1).txt
等同于 touch $(echo 652K aaa | cut -d " " -f 2)-size-$(echo 652K aaa | cut -d " " -f 1).txt
建议研究下 du -sh aaa 的输出
du -sh * | awk '{print $2"-size-"$1".txt"}' | xargs -i touch {}
好了,输出的内容中间是个 tab 不是空格, cut 后面改成 tab 就好了
好了,谢谢大家,结贴
其实更推荐 6 楼的方法,同样的
touch $(du -sh aaa | awk '{print $2"-size-"$1".txt"}')