成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

兩種CP命令常見用法的快捷方式

系統 Linux
這篇文章是關于如何在使用 cp 命令進行備份以及同步時提高效率。

 

[[273157]]

去年七月,我寫了一篇關于 cp 命令的兩種常見用法的文章:備份一個文件,以及同步一個文件夾的備份。

雖然這些工具確實很好用,但同時,輸入這些命令太過于累贅了。為了解決這個問題,我在我的 Bash 啟動文件里創建了一些 Bash 快捷方式。現在,我想把這些捷徑分享給你們,以便于你們在需要的時候可以拿來用,或者是給那些還不知道怎么使用 Bash 的別名以及函數的用戶提供一些思路。

使用 Bash 別名來更新一個文件夾的副本

如果要使用 cp 來更新一個文件夾的副本,通常會使用到的命令是:

  1. cp ---v SOURCE-FOLDER DESTINATION-DIRECTORY

其中 -r 代表“向下遞歸訪問文件夾中的所有文件”,-u 代表“更新目標”,-v 代表“詳細模式”,SOURCE-FOLDER 是包含最新文件的文件夾的名稱,DESTINATION-DIRECTORY 是包含必須同步的SOURCE-FOLDER 副本的目錄。

因為我經常使用 cp 命令來復制文件夾,我會很自然地想起使用 -r 選項。也許再想地更深入一些,我還可以想起用 -v 選項,如果再想得再深一層,我會想起用選項 -u(不知道這個選項是代表“更新”還是“同步”還是一些什么其它的)。

或者,還可以使用Bash 的別名功能來將 cp 命令以及其后的選項轉換成一個更容易記憶的單詞,就像這樣:

  1. alias sync='cp -r -u -v'

如果我將其保存在我的主目錄中的 .bash_aliases 文件中,然后啟動一個新的終端會話,我可以使用該別名了,例如:

  1. sync Pictures /media/me/4388-E5FE

可以將我的主目錄中的圖片文件夾與我的 USB 驅動器中的相同版本同步。

不清楚 sync 是否已經定義了?你可以在終端里輸入 alias 這個單詞來列出所有正在使用的命令別名。

喜歡嗎?想要現在就立即使用嗎?那就現在打開終端,輸入:

  1. echo "alias sync='cp -r -u -v'" >> ~/.bash_aliases

然后啟動一個新的終端窗口并在命令提示符下鍵入 alias。你應該看到這樣的東西:

  1. me@mymachine~$ alias
  2.  
  3. alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
  4. alias egrep='egrep --color=auto'
  5. alias fgrep='fgrep --color=auto'
  6. alias grep='grep --color=auto'
  7. alias gvm='sdk'
  8. alias l='ls -CF'
  9. alias la='ls -A'
  10. alias ll='ls -alF'
  11. alias ls='ls --color=auto'
  12. alias sync='cp -r -u -v'
  13. me@mymachine:~$

這里你能看到 sync 已經定義了。

使用 Bash 函數來為備份編號

若要使用 cp 來備份一個文件,通常使用的命令是:

  1. cp --force --backup=numbered WORKING-FILE BACKED-UP-FILE

其中 --force 代表“強制制作副本”,--backup= numbered 代表“使用數字表示備份的生成”,WORKING-FILE 是我們希望保留的當前文件,BACKED-UP-FILEWORKING-FILE 的名稱相同,并附加生成信息。

我們不僅需要記得所有 cp 的選項,我們還需要記得去重復輸入 WORKING-FILE 的名字。但當Bash 的函數功能已經可以幫我們做這一切,為什么我們還要不斷地重復這個過程呢?就像這樣:

再一次提醒,你可將下列內容保存入你在家目錄下的 .bash_aliases 文件里:

  1. function backup {
  2.     if [ $# -ne 1 ]; then
  3.         echo "Usage: $0 filename"
  4.     elif [ -f $1 ] ; then
  5.         echo "cp --force --backup=numbered $1 $1"
  6.         cp --force --backup=numbered $1 $1
  7.     else
  8.         echo "$0: $1 is not a file"
  9.     fi
  10. }

我將此函數稱之為 backup,因為我的系統上沒有任何其他名為 backup 的命令,但你可以選擇適合的任何名稱。

第一個 if 語句是用于檢查是否提供有且只有一個參數,否則,它會用 echo 命令來打印出正確的用法。

elif 語句是用于檢查提供的參數所指向的是一個文件,如果是的話,它會用第二個 echo 命令來打印所需的 cp 的命令(所有的選項都是用全稱來表示)并且執行它。

如果所提供的參數不是一個文件,文件中的第三個 echo 用于打印錯誤信息。

在我的家目錄下,如果我執行 backup 這個命令,我可以發現目錄下多了一個文件名為checkCounts.sql.~1~ 的文件,如果我再執行一次,便又多了另一個名為 checkCounts.sql.~2~ 的文件。

成功了!就像所想的一樣,我可以繼續編輯 checkCounts.sql,但如果我可以經常地用這個命令來為文件制作快照的話,我可以在我遇到問題的時候回退到最近的版本。

也許在未來的某個時間,使用 git 作為版本控制系統會是一個好主意。但像上文所介紹的 backup 這個簡單而又好用的工具,是你在需要使用快照的功能時卻還未準備好使用 git 的最好工具。

結論

在我的上一篇文章里,我保證我會通過使用腳本,shell 里的函數以及別名功能來簡化一些機械性的動作來提高生產效率。

在這篇文章里,我已經展示了如何在使用 cp 命令同步或者備份文件時運用 shell 函數以及別名功能來簡化操作。如果你想要了解更多,可以讀一下這兩篇文章:怎樣通過使用命令別名功能來減少敲擊鍵盤的次數 以及由我的同事 Greg 和 Seth 寫的 Shell 編程:shift 方法和自定義函數介紹

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2022-01-26 00:36:24

vue組件化通信

2021-04-22 15:09:35

iOS快捷方式蘋果

2011-03-03 10:26:04

Pureftpd

2021-05-27 10:57:01

TCP定時器網絡協議

2009-06-25 13:43:00

Buffalo AJA

2010-10-21 16:24:18

sql server升

2009-11-23 14:09:53

PHP的foreach

2009-08-11 10:20:52

linux命令行修改Ilinux命令行linux命令行參數

2010-08-06 09:38:11

Flex讀取XML

2023-03-29 13:06:36

2017-01-06 09:25:47

2010-09-07 11:09:59

2010-06-30 13:07:17

SQL Server函

2010-07-27 15:03:37

Flex ArrayC

2024-09-20 11:32:28

.NET內存管理

2010-05-10 18:19:00

負載平衡技術

2011-03-23 11:22:14

oracle dbli

2010-07-14 10:30:26

Perl多線程

2010-08-11 14:22:26

Flex彈出窗口

2010-07-15 14:38:55

Perl eval函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 九九精品在线 | 黄色欧美大片 | 999www视频免费观看 | 国产精品一区一区 | 亚洲精品久久久久久久久久久 | 欧美一区在线看 | 四虎网站在线观看 | 久久精品国产亚洲一区二区 | 日韩av在线一区 | 国产视频一视频二 | 天天天插 | 欧美又大粗又爽又黄大片视频 | 中文字幕国产 | 作爱视频免费观看 | 成人在线视频免费看 | 一区二区三区高清在线观看 | 成人免费视频在线观看 | 免费三级网站 | 黄色免费网站在线看 | 久久久久久国产精品久久 | 亚洲精品乱码久久久久久黑人 | 亚洲视频第一页 | 中文字幕91av | 91精品国产乱码久久久久久 | 7777精品伊人久久精品影视 | 欧美日本韩国一区二区三区 | 蜜桃在线一区二区三区 | av入口| 国产一区二区精品在线观看 | 国产精品久久久久一区二区三区 | 一区二区精品 | 欧美一级在线 | 国产日韩欧美一区 | 午夜影晥 | 成人小视频在线观看 | 国产小视频在线 | 日韩在线观看 | 久操伊人 | 中文字幕在线播放第一页 | 久久久久久91香蕉国产 | 日韩免费在线视频 |