shell 拷贝 一个目录下的所有文件 到 另个目录下_几例实用的Shell脚本
日常工作中,經常編寫一些shell命令或腳本以完成重復性操作,本文分享了最近用到的幾例shell實用腳本。
1 特殊文件名的遠程拷貝
服務器之間拷貝文件經常使用scp命令,其命令格式:
(1)scp filename [user@]host:dir(2)scp [user@]host:dir1/filenamedir2格式(1)將本地文件filename拷貝到遠程服務器host的dir目錄下,格式(2)將遠程服務器host的dir1目錄下的文件filename,拷貝到本地dir2目錄下。
如果拷貝的文件名包含特殊字符,比如ecs-eos-base:1.0.tar,冒號:屬于特殊字符。直接使用格式(1)的命令進行拷貝,命令將ecs-eos-base識別為主機名稱而命令運行報錯,如下:
[root@PHY91 docker]# scp ecs-eos-base:1.0.tar root@PHY94:/root/docker/ssh: Could not resolve hostname ecs-eos-base: Temporary failure in name resolution此時使用./表示當前目錄即可解決該報錯,命令如下:
[root@PHY91 docker]# scp ./ecs-eos-base:1.0.tar root@PHY94:/root/docker/ecs-eos-base:1.0.tar 100% 84MB 172.7MB/s 00:00使用./代表當前目錄,scp命令就不會將ecs-eos-base識別為主機名稱。
2 Base64編碼和解碼
在Centos或Redhat Linux操作系統中,如果要進行字符串的Base64編碼和解碼,可以使用base64命令即可簡單實現。
(1)編碼
[root@PHY91 ~]# echo "PHY91" | base64UEhZOTEK(2)解碼
[root@PHY91 ~]# echo "UEhZOTEK" | base64 -dPHY91base64既可以編碼解碼字符串,也可以對文件內容進行編碼和解碼。-d參數是表示解碼。
對文件編碼解碼命令如下:
[root@PHY91 test]# echo "12345" > test.txt [root@PHY91 test]# base64 test.txt MTIzNDUK [root@PHY91 test]# base64 test.txt > test2.txt [root@PHY91 test]# more test2.txtMTIzNDUK [root@PHY91 test]# base64 -d test2.txt123453 版本號自增長的實現
使用docker build進行應用鏡像構建時,為便于鏡像版本管理,每次構建的鏡像版本號會增加1。可以使用腳本實現版本號的自增1,首先創建一個version.txt文件,內容如下:
[eos@host-132 eos]$ more version.txt1.0.0獲取版本號命令如下:
version=`cat version.txt`版本號賦值給version變量。
版本號自動增加1,腳本命令如下:
echo $version | awk -F'.' '{print($1"."$2"."($3+1));}' > version.txt命令說明:
(1)使用awk命令,分隔符為點“.”;
(2)$1,$2和$3分別是版本號的第1,2,3個數字;
(3)$3+1表示版本號增加1。
4 sed配置運行環境
在動靜完全分離的web應用項目中,前端使用nginx部署靜態資源即可,項目前端代碼的基準URL(baseUrl)需要根據不同運行環境(開發、測試、生產)進行相應的修改,例如baseUrl賦值的js代碼如下:
define(["jquery"], function ($) { return { //生產是prod.abc.com,測試是test.abc.com,開發是localhost baseUrl: "http://localhost/總結
以上是生活随笔為你收集整理的shell 拷贝 一个目录下的所有文件 到 另个目录下_几例实用的Shell脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python属性使用教程_Python对
- 下一篇: .so 依赖目录 cmake_cmake