我们有一个文件夹变得笨重的问题,其中包含数十万个小文件。
执行rm -rf返回错误的文件太多了,而我们需要做的是:
find /path/to/folder -name "filenamestart*" -type f -exec rm -f {} \;
这有效,但速度非常慢,并且经常因内存不足而失败。
有一个更好的方法吗?理想情况下,我想删除整个目录而不关心其中的内容。
我正在开发一个简单的 bash 脚本,它应该能够在 Ubuntu 和 CentOS 发行版上运行(对 Debian 和 Fedora/RHEL 的支持将是一个加分项),我需要知道脚本正在运行的发行版的名称和版本(以触发特定操作,例如创建存储库)。到目前为止,我所得到的是:
OS=$(awk '/DISTRIB_ID=/' /etc/*-release | sed 's/DISTRIB_ID=//' | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m | sed 's/x86_//;s/i[3-6]86/32/')
VERSION=$(awk '/DISTRIB_RELEASE=/' /etc/*-release | sed 's/DISTRIB_RELEASE=//' | sed 's/[.]0/./')
if [ -z "$OS" ]; then
    OS=$(awk '{print $1}' /etc/*-release | tr '[:upper:]' '[:lower:]')
fi
if [ -z "$VERSION" ]; then
    VERSION=$(awk '{print $3}' /etc/*-release)
fi
echo $OS
echo $ARCH
echo $VERSION
Run Code Online (Sandbox Code Playgroud)
这似乎有效,返回ubuntu或centos(我没有尝试过其他人)作为发布名称。但是,我有一种感觉,必须有一种更简单、更可靠的方法来解决这个问题——这是真的吗?
它不适用于 RedHat。/etc/redhat-release 包含:Redhat Linux 企业版 5.5 …
我的系统管理员在我的机器上设置了一堆 cron 作业。我想知道确切的时间安排。我怎样才能得到那个清单?
当我top在 Linux 中发出时,我得到类似这样的结果:

其中一行具有 CPU 使用率信息,如下所示:
Cpu(s): 87.3%us,  1.2%sy,  0.0%ni, 27.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Run Code Online (Sandbox Code Playgroud)
虽然我知道每个任务的定义(远在下面),但我不明白这些任务的确切含义。
hi - 服务硬件中断是什么意思?si - 服务软件中断是什么意思?st - 他们说这是“当管理程序为另一个处理器提供服务时,虚拟 CPU 非自愿等待的 CPU 时间(或从虚拟机窃取的 CPU 时间百分比”)。但它实际上意味着什么?有人可以更清楚吗?
我列出的所有的us,sy,ni,等,因为它可以帮助别人寻找相同。此信息不在手册页中。
us: user cpu time (or) % CPU time spent in user space
sy: system cpu time (or) % CPU time spent in kernel space
ni: user nice cpu time (or) % CPU time spent on low priority processes
id: …Run Code Online (Sandbox Code Playgroud) 我正在寻找cp -r和之间的区别cp -a。在从文件夹复制文件方面,“递归”是什么意思?
ps aux似乎很方便地列出了所有进程及其状态和资源使用情况(Linux/BSD/MacOS),但是我无法理解aux使用man ps.
什么aux意思?
我知道我可以vim通过执行类似的操作来打开多个文件vim 2011-12*.log,但是如何在文件之间切换并一次关闭一个文件?另外,我如何知道我正在编辑的当前文件的文件名?
我的/etc/fstab包含这个:
# / was on /dev/sda1 during installation
UUID=77d8da74-a690-481a-86d5-9beab5a8e842 /               ext4    errors=remount-ro 0       1
Run Code Online (Sandbox Code Playgroud)
此系统上还有其他几个磁盘,并非所有磁盘都安装到正确位置(例如,/dev/sda1 和 /dev/sdb1 有时会颠倒)。
如何查看系统上所有磁盘的 UUID?我可以在这个系统上看到第三个磁盘的 UUID 吗?
我正在pdftoppm将用户提供的 PDF 转换为 300DPI 图像。这很好用,除非用户提供页面非常大的 PDF。  pdftoppm将分配足够的内存来在内存中保存该大小的 300DPI 图像,对于 100 英寸的方形页面,它是 100*300 * 100*300 * 4 字节/像素 = 3.5GB。恶意用户可以给我一个愚蠢的大 PDF 并导致各种问题。
所以我想做的是对我即将运行的子进程的内存使用设置某种硬限制——如果它试图分配超过 500MB 的内存,就让进程死掉。那可能吗?
我不认为 ulimit 可以用于此,但是否有一个等价的进程?
linux ×10
command-line ×2
files ×2
rm ×2
cp ×1
cpu ×1
cron ×1
filesystems ×1
find ×1
memory ×1
ps ×1
recursive ×1
scheduling ×1
shell-script ×1
storage ×1
top ×1
ulimit ×1
vim ×1