Linux Shell Scripting Cookbook 读书笔记 6

wget,curl, tar, rsync

wget ftp://example.com/somefile.img -t 5 -O download.img -o log

-t表示重试的次数

-O指定输出文件名

-o指定一个日志文件

wget -c URL

断点续传,如果下载在完成前被中断,可以用-c从断点处开始下载

 

用curl指定参考页,指定cookie

curl -I --referer http://www.baidu.com https://www.cnblogs.com --cookie "user=xxx;pass=xxx"

用curl指定头部信息

curl -H "Host:www.test.org" -H "Accept-language:en" URL

用curl进行认证

curl -u user:password http://www.test.org

curl -u user http://www.test.org #需要手动输入密码

发送post请求

curl -d "key1=var1&key2=var2"  URL -o output.html

 

tar命令本身只是归档功能,如果要压缩,需要指定压缩格式

-z gzip

-j bunzip

--lzma  lzma

其中-a选项可以通过归档文件的扩展名自动判断压缩格式

例如: tar -cavf file.tar.gz file1 file2

tar追加文件

tar -rvf original.tar new_file

由于tar命令可接受的参数有限,如果文件很多,可以考虑用-r

FILE_LIST="file1 file2 file3 file4......."

for f in $FILE_LIST;

do

tar -rvf file.tar $f

done;

gzip -9 file.tar #-9压缩率最高,-1速度最快

显示tarball里面的文件

 

-v 或者-vv用来显示更多细节

将文件名指定为命令行参数来提取特定的文件

tar -xvf file.tar file1 file2  #该命令只提取file1 file2

拼接两个归档文件

tar -Af file1.tar file2.tar   #将file2.tar的内容合并到file1.tar中

比较归档文件与本地文件差别

tar -df file.tar file1 file2

file1: Mod time differs

file2: Size differs

从归档文件中删除文件

tar -f file.tar --delete file1 file2

从归档文件中排除部分文件

tar -cf file.tar * --exclude "*.txt" #归档除了txt文件以外的所有文件

排除版本控制目录,如.git,.svn

tar --exclude-vcs -czvf file.tar * 

 

rsync备份

rsync is a file transfer program capable of efficient remote update
via a fast differencing algorithm.

相对于cp命令,rsync使用了高效的差异算法,并且会比较源端与目的端的差异,只有当文件有更新才会复制。

rsync也支持压缩,加密

rsync -av /opt/myapp [email protected]:/tmp/

 

转载于:https://www.cnblogs.com/ryansunyu/p/9297703.html

你可能感兴趣的:(Linux Shell Scripting Cookbook 读书笔记 6)