我阅读了一些关于“ifconfig”命令的文章/教程,其中大部分都包含一个通用语句 -
“ifconfig 已被 ip 命令弃用”
并建议学习ip命令。但是他们都没有解释“ip”命令如何比“ifconfig”更强大。
它们之间有什么区别?
我正在尝试使用以下dd命令将远程 xfs 磁盘克隆到另一个位置。
ssh root@source_ip "dd if=/dev/vda2 bs=16M conv=noerror,sync status=progress " | sudo dd of=/dev/nvme1n1 bs=16M conv=noerror,sync status=progress
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误消息
828895133696 bytes (829 GB) copied, 39610.432258 s, 20.9 MB/s
1288490188800 bytes (1.3 TB) copied, 64529.849170 s, 20.0 MB/s
dd: error writing '/dev/nvme1n1': No space left on device
Run Code Online (Sandbox Code Playgroud)
源盘有 1TB,目标盘有 1.2TB。
谁能帮助解释为什么在这种情况下不能执行磁盘到磁盘克隆?谢谢!
我想尝试从源磁盘恢复已删除的文件,但我不确定 DD 是否是这种情况下唯一正确的工具。
我正在从surrey.ac.uk的UNIX 初学者教程中学习 unix 命令,在那里我发现了一种移动文件的奇怪方法。特别是,我在主目录中有文件夹 unixstuff,在 unixstuff 中有文件夹备份和文件 Caiti.txt 和 Caiti.bak。
根据上面的链接,要将 Caiti.bak 文件从 unixstuff 移动到备份,我必须确保当前目录是 unixstuff 并且我必须运行以下命令:
mv Caiti.bak backups/.
Run Code Online (Sandbox Code Playgroud)
请你解释一下这些/.字符的含义吗?点表示当前目录(在本例中为 unixstuff)。如果我运行命令:
mv Caiti.bak backups
Run Code Online (Sandbox Code Playgroud)
无论如何它都有效。
我正在尝试在 bash 脚本中创建一个函数方法,该脚本执行由参数提供给该方法的命令。
意思是这样的:
special_execute()
{
# Some code
# Here's the point where the command gets executed
$@
# More code
}
special_execute echo "abc"
Run Code Online (Sandbox Code Playgroud)
我已经尝试过我$@,"$@",$*,"$*"我怎么能这样做呢?
我可以非常快速地监视进程的运行时间time:
x@y ~ $ time foo
real 0m14.299s
user 0m4.770s
sys 0m0.440s
Run Code Online (Sandbox Code Playgroud)
有没有办法可以获取记录到 STDOUT 的参数的 I/O 和 CPU 使用率的相同数据?一个简单的命令或实用程序time是理想的,我只传递我想要运行的东西的参数:
x@y ~ $ stats foo
wallclock runtime 0m14.299s
I/O reads 290,420 KB
I/O writes 239,429 KB
peak CPU usage 18.62%
mean CPU usage 1.44%
# etc.
Run Code Online (Sandbox Code Playgroud) 是否有一个简单的命令行来提取由连字符分隔的字符串的最后一部分?例如,我想123从foo-bar-123.
这是我的小 bash 脚本片段。
i=5
command='echo $i'
$command
Run Code Online (Sandbox Code Playgroud)
我希望这个脚本打印,5即,我希望它运行 echo 并打印 5。但它一直在打印$i。那么我该如何解决这个问题呢?
我有一个包含大约 2000 个文件的目录。
我运行以下命令将这 2000 个文件移动到目标目录中:
find /opt/alfresco \
-type f \( -iname \*.pdf -o -iname \*.xml \) \
-exec mv {} /opt/alfresco/archived/2020-01-07 \; > /opt/alfresco/scripts/move.log
Run Code Online (Sandbox Code Playgroud)
但是,我忘了/在目标路径的末尾附加一个。所以上面的命令所做的是,它创建了一个带有名称的文件,2020-01-07并向其中写入了一些现在不可读的二进制内容。我的 2000 个文件不见了。此2020-01-07文件的大小为 220 KB。但那 2000 个文件的总大小约为 1 GB。
有什么办法可以恢复那 2000 个文件吗?或者我可以通过什么方式将此文件转换2020-01-07为2020-01-07我的数据返回的目录?
getoptbash 命令行中有一个命令。getopt可以与短选项(例如getopt -o axby "$@")一起使用,并且可以与短选项和长选项(例如getopt -o axby -l long-key -- "$@")一起使用,但现在我只需要长选项(即根本不存在短选项),但是命令getopt -l long-key -- "$@"不--long-key正确解析选项。那么如何使用只有长选项的getopt命令呢?或者这是不可能的还是只是命令的错误?getopt
date -d "115 years ago"\nDi 11. Aug 13:37:54 CET 1908\nRun Code Online (Sandbox Code Playgroud)\ndate -d "116 years ago"\ndate: invalid date \xe2\x80\x98116 years ago\xe2\x80\x99\nRun Code Online (Sandbox Code Playgroud)\n115 years过去或未来5879565 years?date -d "200 years ago 14 Mar "突然就可以工作了呢?command ×10
linux ×3
bash ×2
mv ×2
string ×2
awk ×1
bash-script ×1
command-line ×1
date ×1
date-utility ×1
dd ×1
filesystems ×1
find ×1
function ×1
ip ×1
networking ×1
parameter ×1
sed ×1
shell ×1
shell-script ×1
statistics ×1
syntax ×1
time ×1
time-utility ×1
timestamps ×1