歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 三個快速便捷的Linux命令行小貼士

三個快速便捷的Linux命令行小貼士

日期:2017/2/28 14:43:15   编辑:Linux教程

最近幾周裡,我總是收到人們詢問一些快速零散的問題。有時候一個人是在尋找一個有幫助的建議,或者一個具體的命令,或者一個命令行捷徑,以完成一個特定的任務。本篇將介紹最近人們向我提出的三個問題,以及完成這些任務的簡單方法。

第一個場景我們要找到那些在過去的一個月中被改動過的文件,並將他們從當前的位置復制到另一個目錄中去。

在這種情況下,能否精確的解決取決於你復制文件的時候是否保持了原來的文件樹結構,還是你僅僅只是把所有文件全部復制到了一個指定的地方。如果我們只是想把所有的文件保存到一個文件夾中,或許這樣做是為了將這些文件歸檔,那麼我們可以使用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

via: http://distrowatch.com/weekly.php?issue=20130923

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

譯者:markvv 校對:wxy

Copyright © Linux教程網 All Rights Reserved