我需要获取人类可读的 du 输出列表。
但是,du没有“按大小排序”选项,并且管道sort无法与人类可读标志一起使用。
例如,运行:
du | sort -n -r
Run Code Online (Sandbox Code Playgroud)
按大小(降序)输出排序的磁盘使用情况:
du |sort -n -r
65108 .
61508 ./dir3
2056 ./dir4
1032 ./dir1
508 ./dir2
Run Code Online (Sandbox Code Playgroud)
但是,使用人类可读的标志运行它,排序不正确:
du -h | sort -n -r
508K ./dir2
64M .
61M ./dir3
2.1M ./dir4
1.1M ./dir1
Run Code Online (Sandbox Code Playgroud)
有谁知道du -h 按大小排序的方法?
确定 bash 中的变量是否为空(“”)的最佳方法是什么?
我听说建议我这样做 if [ "x$variable" = "x" ]
这是正确的方法吗?(一定有更直接的东西)
我只是想知道两者之间到底有什么区别
[[ $STRING != foo ]]
Run Code Online (Sandbox Code Playgroud)
和
[ $STRING != foo ]
Run Code Online (Sandbox Code Playgroud)
除此之外,后者是符合 POSIX 的,可在 sh 中找到,而前者是在 bash 中找到的扩展。
如何获得以毫秒为单位的当前 Unix 时间(即自 Unix 纪元 1970 年 1 月 1 日以来的毫秒数)?
.profile,.bash_profile和.bashrc文件之间的功能区别是什么?
有没有办法运行命令(例如ps aux|grep someprocess)n次?
就像是:
run -n 10 'ps aux|grep someprocess'
Run Code Online (Sandbox Code Playgroud)
我想以交互方式使用它。
更新:我问这个问题的原因是,我确实在很多机器上工作,我不想将我所有的改编脚本等导入到每个盒子中以在每台机器上获得相同的功能。
在 Java 中,可以创建一个随机UUID:
UUID uuid = UUID.randomUUID();
Run Code Online (Sandbox Code Playgroud)
如何在 Bash 中做到这一点?
我只是rm -rf /*不小心跑了,但我的意思是rm -rf ./*(注意斜线后面的星星)。
alias rm='rm -i'并且--preserve-root在默认情况下不救我,那么,有没有这方面的任何自动进行保护?
我不是 root 并立即取消了该命令,但在某处或某处有一些宽松的权限,因为我注意到我的 Bash 提示已经坏了。我不想依赖权限而不是 root(我可能会犯同样的错误sudo),而且我不想因为系统中某处丢失一个文件而寻找神秘的错误,所以,备份和sudo是好的,但我想要更好的东西来处理这个特定的情况。
关于三思而后行。我实际上正在使用它!但我用它来解决一些涉及 10 种不同事物的复杂编程任务。我深深地沉浸在这个任务中,没有任何脑力来检查标志和路径,我什至不考虑命令和参数,我认为像“空当前目录”这样的动作,我大脑的不同部分将它们转换为命令,有时会出错。我希望计算机纠正它们,至少是危险的。
sleep 是一个非常流行的命令,我们可以从 1 秒开始睡眠:
# wait one second please
sleep 1
Run Code Online (Sandbox Code Playgroud)
但是如果我只需要等待 0.1 秒或在 0.1 到 1 秒之间,还有什么选择?
sleep 0.XXX工作正常,但在 solarissleep 0.1或sleep 0.01- 非法语法上我有一个数组,当我的脚本运行时,它会填充不同的错误消息。
我需要一种方法来检查脚本末尾是否为空,如果是,则采取特定操作。
我已经尝试将其视为普通 VAR 并使用 -z 进行检查,但这似乎不起作用。有没有办法在 Bash 中检查数组是否为空?