tar

# 创建压缩包
tar -cvf name-of-archive.tar /path/to/directory-or-file    
tar -cvf name-of-archive.tar /home/arch --exclude=/home/arch/.cache --exclude=/home/arch/Downloads
tar -cvf name-of-archive.tar /home/arch --exclude=*.jpg

tar -czvf name-of-archive.tar.gz /path/to/directory-or-file    
tar -cJvf name-of-archive.tar.xz /path/to/directory-or-file    
tar -cjvf name-of-archive.tar.bz2 /path/to/directory-or-file    
tar -cZvf name-of-archive.tar.Z /path/to/directory-or-file    


# 查看压缩包内容
tar -tf archive.tar
tar -tvf archive.tar
tar -tzf archive.tar.gz
tar -tzvf archive.tar.gz


# 解压文件
tar -xvf archive.tar
tar -xvf archive.tar -C /tmp

tar -xzvf archive.tar.gz
tar -xJvf archive.tar.xz
tar -xjvf archive.tar.bz2
tar -xZvf archive.tar.Z

参数解释
* -c: 创建压缩包(create)
* -t: 列出压缩包内容(list)
* -x: 提取文件(extract)
* -v: 显示详细信息(verbose)
* -f: 用于指定文件名(filename),f后必须接文件名。
* -C: 解压到指定目录
* –exclude: 忽略文件或目录
* -z: 使用 gzip 算法来创建压缩包或提取文件。
* -J: 使用 xz 算法创建压缩包或提取文件。
* -j: 使用 bzip2 算法创建压缩包或提取文件。
* -Z: 使用 ncompress 算法创建压缩包或提取文件。

阅读全文 »

wine 1.9 已经可以运行 QQ 7.1 了,体验已经算是很不错了,唯一感觉美中不足的就是在QQ上点开邮箱时,用的wine iexplore不能正常打开QQ邮箱,Google了一下,发现网上只有通过修改注册表的方式修改wine的默认浏览器,然而我按网上的方法来发现根本没有那些注册表项,于是只好自己想办法了。


首先,打开gnome自带的系统监视器,找到当前运行的iexplore的位置

/home/username/.wine/drive_c/Program Files (x86)/Internet Explorer/iexplore.exe

然后,把ie替换为我们想要用的浏览器。

具体做法:

  1. 为以防万一,先备份ie浏览器

     $ cd ~/.wine/drive_c/Program\ Files\ \(x86\)/Internet\ Explorer
     $ mv iexplore.exe iexplore.exe.backup
    
  2. 找到自己正在用的浏览器的位置,创建软连接,比如我用的是Archlinux AUR里的google-chrome

     $ ln -s $(which google-chrome-stable) iexplore.exe
    

完成!当我们再次点击QQ邮箱的图标,打开邮箱的浏览器已经变成Google-chrome了~~
(如果你使用的是其他的浏览器,只需要把上面的google-chrome-stable改为你在终端中打开浏览器的命令就可以。)

阅读全文 »

由于某些原因,我需要将json转换为xml,在网上想找个将json转成xml的便捷方法,还是挺多的,但不能完全实现我的需求,最后还是在 海底苍鹰 所写的基础上完善了一下。以下是我所写的方法。

下载源文件

json转换成xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function json_to_xml($source, $charset = 'UTF-8')
{
if (empty($source)) {
return false;
}
$array = json_decode($source); //php5,以及以上,如果是更早版本,请下载JSON.php
$xml = '<?xml version="1.0" encoding="' . $charset . '"?>';
$xml .= _json_to_xml($array);
return $xml;
}

function _json_to_xml($source, $pkey = '')
{
$string = '';
foreach ($source as $k => $v) {
if (is_array($v)) { //判断是否是数组
$string .= _json_to_xml($v, $k);

} else {
$key = is_numeric($k) ? $pkey : $k; //判断Key是否是数字,如果是,则使用上一级的Key
$string .= empty($key) ? '' : '<' . $key . '>';
if (is_object($v)) { //判断是否是对像
$string .= _json_to_xml($v, $k);
} else {
$string .= $v; //取得标签数据
}
$string .= empty($key) ? '' : '</' . $key . '>';
}
}
return $string;
}

注意:此方法支持<name>aaaa</name>,不支持<name type='test'>aaaaa</name>

xml转换成json

1
2
3
4
5
6
7
8
9
10
11
12
13
function xml_to_json($source)
{
//判断source是file,还是string
if (is_file($source)) {
$xml = simplexml_load_file($source);
} elseif (is_string($source)) {
$xml = simplexml_load_string($source);
} else {
return false;
}
$json = json_encode(array($xml->getName() => $xml)); //php5,以及以上,如果是更早版本,请下载JSON.php
return $json;
}
阅读全文 »

目的:开机后自动后台运行虚拟机,只有进程,不显示GUI界面,关机自动保存虚拟机状态,以便下次开机恢复。

Step 1

启动虚拟机脚本: startvm.bat

1
2
@echo off
"D:\Program Files\Oracle\VirtualBox\VBoxManage" startvm Arch_x64 --type headless

休眠虚拟机脚本: savestate.bat

1
2
@echo off
"D:\Program Files\Oracle\VirtualBox\VBoxManage" controlvm Arch_x64 savestate

注意:

  • "D:\Program Files\Oracle\VirtualBox"是VirtualBox的安装目录,如果你装在其他地方则需要改为对应的位置。
  • Arch_x64为虚拟机名字

Step 2

快捷键 <Win> + R 打开运行窗口,输入gpedit.msc打开组策略,在用户配置->Windows设置->脚本(登录/注销)里,分别添加上面2个脚本。


恭喜你!你已经实现了开机后自动后台运行虚拟机

阅读全文 »