小编ken*_*enn的帖子

wget 网络爬虫检索不需要的 index.html 索引文件

我做了一个~/.bashrc函数来将一些 Web 目录保存到我的本地磁盘中。除了网站中不存在的一些不需要的索引文件外,它运行良好。我用它喜欢

crwl http://ioccc.org/2013/cable3/  
Run Code Online (Sandbox Code Playgroud)

但它也会检索一些文件,例如 index.html?C=D;O=A index.html?C=D;O=D index.html?C=M;O=A index.html?C=M;O=D index.html?C=N;O=A index.html?C=N;O=D index.html?C=S;O=A index.html?C=S;O=D

完整文件清单:

 kenn@kenn:~/experiment/crwl/ioccc.org/2013/cable3$ ls
 bios        index.html?C=D;O=A  index.html?C=S;O=A           screenshot_flightsim4.png
 cable3.c    index.html?C=D;O=D  index.html?C=S;O=D           screenshot_lotus123.png
 fd.img      index.html?C=M;O=A  Makefile                     screenshot_qbasic.png
 hint.html   index.html?C=M;O=D  runme                        screenshot_simcity.png
 hint.text   index.html?C=N;O=A  sc-ioccc.terminal            screenshot_win3_on_macosx.png
 index.html  index.html?C=N;O=D  screenshot_autocad.png
Run Code Online (Sandbox Code Playgroud)

我想在克隆该目录时排除这些文件wget 是否有任何wget开关或技巧可以按原样克隆 Web 目录?

我的脚本功能.bashrc

crwl() {
wget --tries=inf --timestamping --recursive --level=inf --convert-links --page-requisites --no-parent "$@"

}
Run Code Online (Sandbox Code Playgroud)

编辑:我发现了两种可能的解决方法

1) 添加-R index.html?*标志

2)添加-R =A,=D拒绝index.html?C=D;O=A文件的标志, 除了index.html

我不知道哪个是合适的,但它们似乎都不安全。

command-line wget

6
推荐指数
1
解决办法
1万
查看次数

Bash 脚本在给定的 CPU 温度下休眠 ~ 16.04 更新

这是该问题的彻底更新版本。我必须更新这个,因为这个问题被标记为这个问题的重复,而这不再有有效的答案。


  • 此问题的初始版本,带有 11.04 标签:

我是脚本和 linux 的新手,我的 comp 有时会变得太热,我想制作一个脚本来检测 temp1,如果它超过 65 C,它必须让它进入睡眠状态。我在比较脚本中的值时有困难,我无法正确定义数字,有人能解决吗?到目前为止,这是我的尝试

#!/bin/bash

max=65

val=$   sensors | grep '^temp1:' | sed -e 's/.*: \+\([+-][0-9.]\+\)°C.*$/0\1/'

while true; do
    if [[ "$val" > "$max" ]]; then
        sudo /etc/acpi/sleep.sh force
        sleep 1
    else
        sleep 10
    fi
    clear
    sensors
done
Run Code Online (Sandbox Code Playgroud)

以上得到一个脚本的答案,根据评论在某个时候更新为在 14.04 中工作

 #!/bin/bash

 while true; do
    val=$(sensors | awk '/temp1/ {print $2}')
    max="+75.0"
    if [[ "$val" > "$max" ]]; then
        dbus-send --system --print-reply …
Run Code Online (Sandbox Code Playgroud)

suspend temperature cpu 16.04

5
推荐指数
1
解决办法
2471
查看次数

grep 语法与正则表达式不同吗?

我想从这里提取已删除包的名称“cat /var/log/dpkg.log | grep 'remove'”

 2013-09-09 15:57:34 remove activity-log-manager:i386 0.9.4-0ubuntu6.2 <none>
 2013-09-09 15:57:35 remove activity-log-manager-control-center:i386 0.9.4-0ubuntu6.2 <none>
 2013-09-09 15:57:38 remove alacarte:all 3.6.1-0ubuntu3 <none>
 2013-09-09 15:57:41 remove deepin-software-center:all 2.1.2.1~precise~NoobsLab.com <none>
Run Code Online (Sandbox Code Playgroud)

我只想在包名称之后获取 remove 和冒号之间的包名称。我不是正则表达式专家,我做了一个正则表达式似乎可以完成这项工作,但是当我想用 grep 应用它时,什么也没有发生。这是正则表达式评估器中的工作正则表达式模式

(?<=remove)(.*?)(?=:)
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

cat /var/log/dpkg.log | grep 'remove' | grep '(?<=remove)(.*?)(?=:)'
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?

grep

5
推荐指数
1
解决办法
1万
查看次数

“无法获取屏幕信息”错误

我有 Ubuntu 13.10 32 位操作系统。几天前,我添加了 gnome3 ppa 并升级到 gtk 3.10。我必须修复许多 gnome 错误。但我找不到解决这个问题的方法。

当我尝试打开显示时

LC_ALL=C gnome-control-center display
Run Code Online (Sandbox Code Playgroud)

我得到Could not get screen information错误。

我不知道它与它有关;我无法生成Xorg.conf

sudo Xorg :1 -configure
Run Code Online (Sandbox Code Playgroud)

我得到

 sudo Xorg :1 -configure

  X.Org X Server 1.14.5
  Release Date: 2013-12-12
  X Protocol Version 11, Revision 0
  Build Operating System: Linux 3.2.0-54-generic i686 Ubuntu
  Current Operating System: Linux kenn 3.11.0-19-generic #33-Ubuntu SMP Tue Mar 11 18:48:32 UTC 2014 i686
  Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.11.0-19-generic root=UUID=c2d1b866-a0fd-4214-b79b-11b2af29da4d ro quiet splash vt.handoff=7
  Build …
Run Code Online (Sandbox Code Playgroud)

gnome gtk intel-graphics gnome-control-center

5
推荐指数
1
解决办法
7669
查看次数

配合面板时钟小程序非等宽字体导致通知区域摆动

我正在运行 Ubuntu 20.04 mate 桌面。我正在定制配合面板。我想使用以下数字字体,并添加了以下样式~/.config/gtk-3.0/gtk.css

#clock-applet-button.flat.toggle > box.horizontal > label {
    font-weight: normal;
    color: white;
    font-family: DS-Digital;
    font-weight: bold;
    font-size: 18px;
    /*padding-right: 10px;
    padding-left: 10px; */
    /*letter-spacing: 3px;*/
    /*margin: 8px; 
    margin-left: 14px;
    margin-right: 14px;*/
    padding: 0 15px 0 15px;
    font-stretch: ultra-condensed;
    outline-offset: 100px;
    background-color: red;
    /*border-left-width: 50px;
    border-right-width: 50px;*/
    /*outline-width: 20px;*/     
}
  
Run Code Online (Sandbox Code Playgroud)

当数字压缩时它会摆动,例如当时钟数字从0001

我录了 在此处输入图片说明

我尝试添加边距、填充,但它们不起作用。有没有技巧可以使用它来修复它gtk css

fonts css gtk3 mate

5
推荐指数
1
解决办法
177
查看次数

gnome-terminal 以“grep:写入错误:管道损坏”消息开头

我运行的是 Ubuntu 14.04.3,它是最新的。我不知道为什么,几天来我开始收到grep: write error: Broken pipe有关启动gnome-terminal 的消息。这似乎无害,但它让我烦恼。我该如何调试它?

编辑:我将别名和函数分别移动到单独的文件,例如.bash_aliases.bash_functions并添加了一个命令来加载它们.bashrc

 if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
 fi

 if [ -f ~/.bash_functions ]; then
. ~/.bash_functions
 fi
Run Code Online (Sandbox Code Playgroud)

如果我不加载.bash_functions问题就会消失。

我试图通过一一禁用每个功能来找到有问题的功能。

这个给了我同样的错误,但是当我禁用它时,我不断收到相同的错误,所以我可能有更多错误的功能。

 ls -lt  $PWD| grep ^d | head -1 | cut -b 51- 

 grep:  development
 write error: Broken pipe
Run Code Online (Sandbox Code Playgroud)

我想知道为什么我开始犯这个错误。

编辑2:

我在这里发现了类似的问题管道损坏

问题的根源似乎也很相似。

我尝试了链接中给定的测试命令,但出现相同的错误:

 bash -c '(while echo foo; do :; done); echo status=$? >&2' |  head
 foo
 foo …
Run Code Online (Sandbox Code Playgroud)

bash gnome-terminal bashrc

4
推荐指数
1
解决办法
2万
查看次数

xprop 无法取消装饰窗口

我正在运行 Ubuntu 16.04。我想取消装饰(删除边框和标题栏)窗口。我在网上发现一个旧的发布脚本声称可以工作,但现在不起作用。

取消装饰:

xprop -f _MOTIF_WM_HINTS 32c -set _MOTIF_WM_HINTS "0x2, 0x0, 0x0, 0x0, 0x0"
Run Code Online (Sandbox Code Playgroud)

重新装修:

xprop -f _MOTIF_WM_HINTS 32c -set _MOTIF_WM_HINTS "0x2, 0x0, 0x1, 0x0, 0x0"
Run Code Online (Sandbox Code Playgroud)

虽然这个python脚本有效

#! /usr/bin/python2
import gtk.gdk
w = gtk.gdk.window_foreign_new( gtk.gdk.get_default_root_window().property_get("_NET_ACTIVE_WINDOW")[2][0] )
w.set_decorations( (w.get_decorations()+1)%2 ) # toggle between 0 and 1
gtk.gdk.window_process_all_updates()
gtk.gdk.flush()
Run Code Online (Sandbox Code Playgroud)

如何在没有 python 的情况下从终端切换窗口装饰?

xorg window-manager window-decoration xprop

3
推荐指数
1
解决办法
1635
查看次数

移动文件的最快方法是什么?

我有一个大约 6.6GB 的大文件夹,它包含大约 450000 个文件。我将它从一个分区复制到另一个分区。它写道,虽然现在已经运行了 3 个小时,但还剩 6 个小时。平均传输速度为 200kb/s。有没有更好的文件传输方式?

nautilus

2
推荐指数
1
解决办法
3706
查看次数

如何递归比较两个目录并检查其中一个目录是否包含另一个目录?

我有两个目录,它们包含公共文件。我想知道一个目录是否包含与另一个目录相同的文件。我在网上找到了一个脚本,但我想改进它以递归执行。

  #!/bin/bash

  # cmp_dir - program to compare two directories

  # Check for required arguments
  if [ $# -ne 2 ]; then
      echo "usage: $0 directory_1 directory_2" 1>&2
      exit 1
  fi

  # Make sure both arguments are directories
  if [ ! -d $1 ]; then
      echo "$1 is not a directory!" 1>&2
      exit 1
  fi

  if [ ! -d $2 ]; then
      echo "$2 is not a directory!" 1>&2
      exit 1
  fi

  # Process each file in directory_1, comparing it …
Run Code Online (Sandbox Code Playgroud)

command-line bash

2
推荐指数
1
解决办法
3121
查看次数

“pkg-config --modversion glib-2.0”报告旧版本

我有 Ubuntu 14.04 32 位。我正在尝试从源代码编译应用程序。它使我在联系过程中的错误信息make,虽然过程./autogen.sh./configure没有错误传递。我收到了这个错误,undefined reference to g_variant_parse_error_quark我读到该函数g_variant_parse_error_quark在 2.39 中添加到 glib2 中。我检查了已安装的软件包,发现系统中的 libglib 版本是 2.40.0。然而

 pkg-config --modversion glib-2.0
Run Code Online (Sandbox Code Playgroud)

报告 2.38.2

看来我至少安装了两个不同的 glib2。我过去可能从源代码手动安装了 glib2。

如何解决该问题并让我的系统使用正确的最新库?

pkg-config libraries configure

1
推荐指数
1
解决办法
3839
查看次数