指令

搜尋

which

查看可執行檔案的位置


whereis

查看檔案的位置


locate

配合資料庫查看檔案位置


find

實際搜尋硬碟去查詢檔案名稱,很操硬碟,但是功能最完整、強大

$find [path...] [expression]

$find ./ -size +1000k -exec ls -lhS {} \;
找出目前目錄之內(recursive)之size大於1000k之檔案 ,再執行ls -lhS(長列出、human-readable、以檔案大小排序){} \;表示exec之內敘指令結束,有的版本用exec會有問題,可改用xargs。(奇怪的是並沒有照檔案大小排序…待查)

find /var/www/moodledata/backupfiles/* -mtime -1 | xargs -i cp -r {} /mnt/NetBackup/moodle
#將1天內新增的備份cp到/mnt/NetBackup/moodle
find /mnt/NetBackup/moodle/* -mtime +30 | xargs rm -rf {};
#將存在/mnt/NetBackup/moodle內30天以上的備份刪除

find /backup/temp -mtime +7 -exec rm -rf {} \;

找出/backup/temp目錄之內modified time 大於 7 天之檔案 ,再執行rm -rf(強制刪除不確認,recursive

find ./ -type f -name *.txt | wc -l

計算目前目錄之下副檔名為txt的檔案數

 

grep 正規表示法 RE(Regular Expression)

print lines matching a pattern 搜尋符合字串(之檔案)之行

$grep [options] PATTERN [FILE...]
-c :計算找到 '搜尋字串' 的次數
-i :忽略大小寫的不同,所以大小寫視為相同
-n :順便輸出行號
-v :反向選擇,亦即顯示出沒有 '搜尋字串' 內容的那一行!
-r : recursive

$grep -r 'login' /var/log/*
將 /var/log/下(含子目錄)所有含login字串的檔案,及該行顯示出來。

$grep -c [B,b,R,r]oot /etc/*
將 /etc下所有含Boot、boot、Root、root字串的檔案,及該檔出現字串次數顯示出來。

$grep -c [A-r]oot /etc/*
將 /etc下所有含A B C…X Y Z a b c …x y z字串的檔案,及該檔出現字串次數顯示出來。

$grep CRON syslog.1 | grep abcd

將檔案syslog.*中含CRON字串的行列出後,再對這些輸出做一次grep,將其中含有abcd字串的行列出。

du

# du -sh /*

du –sh 查看分區(上例為/)下,每個目錄所占容量大小

df

touch

修改檔案時間與建置新檔

http://linux.vbird.org/linux_basic/0220filemanager.php#touch

選項與參數:  
-a  :僅修訂 access time;  
-c  :僅修改檔案的時間,若該檔案不存在則不建立新檔案;  
-d  :後面可以接欲修訂的日期而不用目前的日期,也可以使用 --date="日期或時間"  
-m  :僅修改 mtime ;  
-t  :後面可以接欲修訂的時間而不用目前的時間,格式為[YYYYMMDDhhmm]

如:

touch -t 201505150101 ifcfg-eth0.2

 

壓縮及解壓縮

tar

$ tar [-zxcvfpP] filename
$ tar -N 'yyyy/mm/dd' /path -zcvf target.tar.gz source
參數說明:
-z :是否同時具有 gzip 的屬性?
-x :解開一個壓縮檔案的參數指令!
-t :查看 tarfile 裡面的檔案!
-c :建立一個壓縮檔案的參數指令
-v :壓縮的過程中顯示檔案!
-f :使用檔名,請留意,在 f 之後要立即接檔名喔!不要再加參數!
例如使用『 tar -zcvfP tfile sfile』就是錯誤的寫法,要寫成
『 tar -zcvPf tfile sfile』才對喔!
-p :使用原檔案的原來屬性(屬性不會依據使用者而變)(備份時用)
-P :可以使用絕對路徑 (未免以後會覆蓋不想覆蓋的路徑,最好別用)
-N :比後面接的日期(yyyy/mm/dd)還要新的才會被打包進新建的檔案中!
--exclude FILE:在壓縮的過程中,不要將 FILE 打包!

$tar -zcvf filename.tar.gz /home/test/*
將 /home/test/ 這個目錄下的檔案全部打包並壓縮成為一個 filename.tar.gz 的檔案

$tar -xvf test.tar
解開tar 的封包於目前目錄,請注意,由於沒有 gzip (.tar 而非 .tar.gz) 的作用,所以只要使用 –xvf 即可!不需要加上 z ,否則會顯示有問題!

$tar -xzvf tes.tar.gz -C /home/thisdir/

解開tar 的封包於/home/thisdir/

tar

打包檔案及資料夾

-c  :建立打包檔案。
-t  :察看打包檔案的內容。  
-x  :解打包或解壓縮的功能。


-v 來察看過程中被打包的檔名(filename) (打包/解打包)時可用。

-z  :透過 gzip  的支援進行壓縮/解壓縮:此時檔名最好為 *.tar.gz  
-j  :透過 bzip2 的支援進行壓縮/解壓縮:此時檔名最好為 *.tar.bz2  
-J  :透過 xz    的支援進行壓縮/解壓縮:此時檔名最好為 *.tar.xz
(以上僅能三擇一)



-f filename 指定打包檔名
-p 保留原本檔案的權限與屬性
--exclude=FILE:在壓縮的過程中,不將某個 FILE 打包

 

# tar -czvp -f nblog.tar.gz /home/nblog

將 /home/nblog整個資料夾 ,以gzip格式,壓成nblog.tar.gz

Tar 備份後 FTP 自動上傳

使用Cron Jobs定期備份資料庫與檔案至FTP

 

ln

連結

 

ln

ln [OPTION]... [-T] TARGET LINK_NAME

-s, --symbolic
make symbolic links instead of hard links

 

ln -s /backup/nblog_backup_rsync.sh /etc/cron.daily/nblog_backup_rsync