三個快速便捷的命令列小貼士
最近幾周裡,我總是收到人們詢問一些快速零散的問題。有時候一個人是在尋找一個有幫助的建議,或者一個具體的命令,或者一個命令列捷徑,以完成一個特定的任務。本篇將介紹最近人們向我提出的三個問題,以及完成這些任務的簡單方法。
第一個場景
我們要找到那些在過去的一個月中被改動過的檔案,並將他們從當前的位置複製到另一個目錄中去。
在這種情況下,能否精確的解決取決於你複製檔案的時候是否保持了原來的檔案樹結構,還是你僅僅只是把所有檔案全部複製到了一個指定的地方。如果我們只是想把所有的檔案儲存到一個資料夾中,或許這樣做是為了將這些檔案歸檔,那麼我們可以使用find這條命令。透過使用find命令,我們能夠根據檔案被修改的時間查詢到他們的位置,然後複製他們到指定的地方。這條命令看起來是這樣:
find Documents -mtime -30 -exec cp "{}" Backup \;
上面這條命令會在Documents資料夾中查詢在過去30天內被修改過的檔案。這些檔案之後將會被複制到另一個叫Backup的目錄中去。find命令將會透過呼叫cp命令來執行復制這一操作。透過修改mtime這條引數,我們可以查詢到最近某個時間內被修改過的檔案,在上面這個例子中它被設定為在過去的30天內。
更多的時候,我們會想要在把檔案複製到目標資料夾後,仍然能夠保留原始檔夾的目錄結構。很多時候,人們都希望兩個資料夾的內容同步,然後他們會執行一個指令碼來使他們保持一致。這種情況下,我們可能會用到rsync這條命令了。這個工具會把新檔案、修改過的檔案從一個複製到另一個目錄中去,同時保持源目錄的展示結構:
rsync -a Documents/ Backup
上面的例子,它會先找到哪些檔案在Documents中和Backup中都存在,以便不再複製這些不必要的檔案。
第二個場景
有一個我們都會做的很普遍的工作,就是在一個文字檔案中找到一個單詞,然後用另一個單詞把這個詞在文字中的所有例項都替換掉。
比如,假設我有一個文件中提到一個人名叫“Becky”,但是我後來決定還是用稍微正式點的稱呼“Rebecca”為好。對檔案中的這個簡單的改動,下面這條命令會起到作用:
perl -pi -e 's/Becky/Rebecca/' mydocument.txt
這條微型的Perl指令碼會查詢文件中所有“Becky”的例項,並且將之改為“Rebecca”。程式首先讀取名為mydocument.txt這個要改動的文件,待修改完畢後再儲存回去。
第三個場景
一個普遍關注的問題是,在一個硬碟要給別人或者被扔掉之前,需要對其中儲存的敏感資料做些什麼。
有些人會在電腦裡儲存一些銀行的業務資料或者稅務資訊,那麼這些資料最好在你的硬碟被轉手到別人之前被徹底清理掉。現在有一些方法和工具可以讓你使用。我最喜歡的一個是shred這條命令,它不僅能對單一檔案進行處理,同樣也能對整個裝置進行處理。要重寫一個檔案裡面的內容,我們可以這樣執行shred:
shred mytaxes.odt
上面這個例子中,它會移除檔案裡存的內容,但並不會把檔案本身從硬碟中刪除掉。如果要清除檔案的內容同時刪除掉這個檔案,我們可以這樣執行:
shred -u mytaxes.odt
需要強調的一點是,shred並不是在所有的檔案系統中都能正常執行,尤其是那些帶有日誌功能的比較新的檔案系統。在shred的操作手冊中寫明瞭哪些檔案系統執行這個程式的時候會出問題。當處理敏感資料的時候,最好的方法也許是清除掉整張硬碟。shred同樣也能辦到。下面這個例子中,顯示瞭如何移除掉我們電腦中第一塊硬碟內的所有資料。使用這條命令一定要非常小心:
shred /dev/sda
相關文章
- Linux 命令列工具使用小貼士及技巧(1)Linux命令列
- Linux 命令列工具使用小貼士及技巧(4)Linux命令列
- Linux 命令列工具使用小貼士及技巧(3)Linux命令列
- Linux 命令列工具使用小貼士及技巧(四)Linux命令列
- Linux 命令列工具使用小貼士及技巧(2)Linux命令列
- Python開發的10個小貼士Python
- 11個實用經典的SQL小貼士SQL
- 【Cron表示式】小貼士
- 【小貼士】關於transitionEnd/animate的一個有趣故事
- 10個自由職業者日常的智慧小貼士
- 程式設計師面試IT公司的37個小貼士程式設計師面試
- 25個Linux 伺服器安全小貼士Linux伺服器
- 給 Git 中級使用者的 25 個小貼士Git
- 【小貼士】資料庫的備份資料庫
- 獨立開發人員通向成功的29個小貼士
- 前端體驗優化小貼士前端優化
- .Net網頁開發小貼士網頁
- 如何開始程式語言?給初學者的幾個小貼士
- 每個程式設計師需掌握的20個程式碼命名小貼士程式設計師
- win10 小貼士怎麼刪除_win10電腦小貼士怎麼關閉Win10
- 關於 Kotlin REPL 的兩條小貼士Kotlin
- 【小貼士】探一探javascript中的replaceJavaScript
- 配置高效能 ElasticSearch 搜尋引擎叢集的9個小貼士Elasticsearch
- 給Apple Watch開發者的8個貼士APP
- iPhone 應用開發的5個貼士iPhone
- dotnet core 3.0 linux 部署小貼士Linux
- Xcode 6檢視除錯小貼士XCode除錯
- Ubuntu——每日小貼士:Linux上的時光機UbuntuLinux
- 8個對程式設計師來說有用的jQuery小貼士和技巧程式設計師jQuery
- 邦芒貼士:這三種人不宜跳槽
- MacOS的7個便捷的終端命令Mac
- java/android 做題中整理的碎片小貼士(4)JavaAndroid
- Swift 小貼士:語言的擴充套件和自定義Swift套件
- 【小貼士】RedHat虛擬機器mount新硬碟Redhat虛擬機硬碟
- 假裝很忙的三個命令列工具命令列
- vue 快速入門的三個小例項Vue
- vue快速入門的三個小例項Vue
- 程式設計師程式設計的 7 + 1 條小貼士程式設計師