我试图通过使用ls带有选项的命令来获取目录(包含目录和子目录)的大小l。它似乎适用于文件 ( ls -l file name),但如果我尝试获取目录的大小(例如,ls -l /home),我只会得到 4096 字节,尽管总的来说它要大得多。
在管理 Linux 系统时,我经常发现自己在分区变满后很难找到罪魁祸首。我通常使用du / | sort -nr但在大型文件系统上这需要很长时间才能返回任何结果。
此外,这通常可以成功地突出显示最严重的罪犯,但我经常发现自己
在更微妙的情况下诉诸于du没有sort,然后不得不浏览输出。
我更喜欢依赖于标准 Linux 命令的命令行解决方案,因为我必须管理相当多的系统并且安装新软件很麻烦(尤其是在磁盘空间不足时!)
我--在compgen命令中看到使用过。
例如:
compgen -W "foo bar baz" -- b
Run Code Online (Sandbox Code Playgroud)
里面的意思是什么--?
有没有办法使用zip命令压缩给定目录中的所有文件?我听说过使用*.*,但我希望它也适用于无扩展名的文件。
有一个内置的 Unix 命令,repeat它的第一个参数是重复命令的次数,其中命令(带有任何参数)由 的其余参数指定repeat。
例如,
% repeat 100 echo "I will not automate this punishment."
Run Code Online (Sandbox Code Playgroud)
将回显给定的字符串 100 次,然后停止。
我想要一个类似的命令——让我们称之为forever——它的工作原理类似,除了第一个参数是重复之间暂停的秒数,它会永远重复。例如,
% forever 5 echo "This will get echoed every 5 seconds forever and ever."
Run Code Online (Sandbox Code Playgroud)
我想我会在写之前问这样的事情是否存在。我知道它就像一个 2 行的 Perl 或 Python 脚本,但也许有更标准的方法来做到这一点。如果没有,请随时用您喜欢的脚本语言发布解决方案。
PS:也许更好的方法是将repeat重复次数(-1 表示无穷大)和重复之间的睡眠秒数进行概括。上面的例子将变成:
% repeat 100 0 echo "I will not automate this punishment."
% repeat -1 5 echo "This will get echoed every 5 seconds forever."
Run Code Online (Sandbox Code Playgroud) 如何删除文件名以破折号(连字符或减号)开头的文件-?我通过 ssh 连接到远程 OSX 服务器,并且我的目录中有这个文件:
tohru:~ $ ls -l
total 8
-rw-r--r-- 1 me staff 1352 Aug 18 14:33 --help
...
Run Code Online (Sandbox Code Playgroud)
我怎么--help能从 CLI 中删除?这个问题是我偶尔以不同形式遇到的问题,这些文件很容易创建,但很难摆脱。
我试过使用反斜杠
rm \-\-help
Run Code Online (Sandbox Code Playgroud)
我试过引号
rm "--help"
Run Code Online (Sandbox Code Playgroud)
如何防止将减号(破折号或连字符)字符解释为选项?
我总是很犹豫要不要跑kill -9,但我看到其他管理员几乎是例行公事。
我认为可能有一个明智的中间立场,所以:
kill -9使用?什么时候,为什么不呢?我知道 shell 脚本只是运行命令,就好像它们是在命令提示符下执行的一样。我希望能够像运行函数一样运行 shell 脚本......也就是说,将输入值或字符串带入脚本中。我该如何处理?
有时我想开始一个过程并忘记它。如果我从命令行启动它,就像这样:
redshift
Run Code Online (Sandbox Code Playgroud)
我无法关闭终端,否则它会终止进程。我可以以可以关闭终端而不终止进程的方式运行命令吗?