我很好奇 -ls -l和之间有区别ls -lllllllllllllllllllllllllllll吗?
输出似乎相同,我对为什么ls允许重复开关感到困惑。这是大多数命令中的标准做法吗?
CentOS 5.x
如果这是一个重复的问题,我深表歉意。我见过很多类似的问题(关于删除文件),但并不完全相同。
我有一个包含数十万个文件(可能超过一百万个)的目录,作为对不同问题的短期修复,我需要将这些文件移动到另一个位置。
出于讨论的目的,假设这些文件最初驻留在其中/home/foo/bulk/,我想将它们移动到/home/foo2/bulk2/
如果我尝试,mv /home/foo/bulk/* /home/foo2/bulk2/ 我会收到“参数过多”错误。
谷歌先生告诉我,批量删除文件的另一种方法是运行查找。就像是: find . -name "*.pdf" -maxdepth 1 -print0 | xargs -0 rm
如果我正在删除内容,那会很好,但在这种情况下,我想移动文件......如果我输入类似find . -name "*" -maxdepth 1 -print0 | xargs -0 mv /home/foo2/bulk2/bash 的内容,则会抱怨该文件不是目录。
在这里将文件从一个目录批量移动到另一个目录的最佳命令是什么?
我想让 bash 从一个随机的短字符串中解析/提取一个完整的 URL(并且只有 url)。
例子:
bob, the address is http://www.google.com
Run Code Online (Sandbox Code Playgroud)
或者
https://foo.com/category/example.html is up
Run Code Online (Sandbox Code Playgroud)
或者
Error 123 occurred at http://bit.ly/~1223456677878
Run Code Online (Sandbox Code Playgroud)
或者
Stats are up: https://foo1234.net/report.jpg
Run Code Online (Sandbox Code Playgroud)
我尝试使用,cat foo_output | egrep -o "https?://[\w'-\.]*\s"但这似乎不起作用。
CentOS 6.x
我很困惑我放在 /tmp/ 中的文件何时被删除。
/etc/cron.daily/tmpwatch 有以下内容:
#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
-X '/tmp/hsperfdata_*' 10d /tmp
/usr/sbin/tmpwatch "$flags" 30d /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
if [ -d "$d" ]; then
/usr/sbin/tmpwatch "$flags" -f 30d "$d"
fi
done
Run Code Online (Sandbox Code Playgroud)
第 5 行中读取的部分-X '/tmp/hsperfdata_*' 10d /tmp让我相信我放在 /tmp/ 中的文件将保留 10 天(假设它们在删除过程中没有被锁定,或者该目录安装在 tmpfs 文件系统上)。
那是对的吗?
我有一个运行一系列检查(一个简单的bash脚本ping,nslookup等等),然后用这些数据的输出发送电子邮件报告。
我希望电子邮件包含有关运行整个脚本所需时间的信息。有没有一种简单的方法来收集这些信息?
有人可以详细说明输出中各个RX packets字段之间的区别ifconfig吗?
例如,假设我运行ifconfig并看到以下内容:
eth0 Link encap:Ethernet HWaddr AA:BB:CC:DD:EE:FF
inet addr:1.1.1.1 Bcast:1.1.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:202723544 errors:0 dropped:4959 overruns:0 frame:37
TX packets:158354057 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4261083782 (3.9 GiB) TX bytes:1224803677 (1.1 GiB)
Interrupt:83 Memory:f6bf0000-f6c00000
Run Code Online (Sandbox Code Playgroud)
是有什么区别errors: dropped: overruns和frame:
我在这一点上的猜测(基于一些模糊的谷歌搜索)是frame:当 nic 分析传入帧时特别与 CRC 失败有关,这errors:是一个更广泛的通用类别。再说一遍……如果是这样,我希望这两个字段都显示数字。
我试图了解 bash 中点的重要性以及它与星号的区别。有人可以详细说明吗?例如,有什么之间的区别cp -ar /foo/. /foo2/和cp -pr /foo/* /foo2/
我正在研究 ACL,但对这些信息在技术上的位置感到困惑。这在技术上只是来自 inode 的元数据吗?
如果我sudo在 bash 中的单行开头键入,它是否适用于其余命令?
换句话说,是这样的:
sudo foo | foo2 | foo3
Run Code Online (Sandbox Code Playgroud)
相当于:
sudo foo | sudo foo2 | sudo foo3
Run Code Online (Sandbox Code Playgroud) 我在 bash 脚本中有一组 sed 替换,并且收到有关未终止的“s”命令的错误。这是 sed 行的样子:
sed -n -e "s/TMPFOO1/$FOO1/" -e "s/TMPFOO2/$FOO2/" -e "s/TMPFOO3/$FOO3/" -e "s/TMPFOO4/$FOO4/" -e "s/TMPFOO5/$FOO5/" /home/foo/template > /home/foo/template/finishedresult
Run Code Online (Sandbox Code Playgroud)
但出于某种原因,bash 不喜欢这样,我收到了一个关于
sed: -e expression #4, char 69: unterminated `s' command
Run Code Online (Sandbox Code Playgroud)
我在这里缺少什么?我怎样才能让 SED 输入变量?在我看来他们都被终止了。