1. 程式人生 > >Linux中xargs命令的重要作用------順便分享一次面試經歷和一次實戰經歷

Linux中xargs命令的重要作用------順便分享一次面試經歷和一次實戰經歷

        在某公司的某次面試中, 被問到這樣一個題目:如何刪除當前目錄和子目錄下所有的.txt檔案?  如果對linux命令不熟悉, 則看到題目就會有點傻眼。 當然, 如果你清楚xargs命令的作用, 那就好說了。 一句話:xagrs會接收管道傳過來的引數, 並傳給管道後面的命令。 下面, 我們來一起看看:

[email protected] ~/test
$ ls

[email protected] ~/test
$ touch a.txt b.txt c.log

[email protected] ~/test
$ mkdir d; cd d

[email protected]
~/test/d $ touch e.txt [email protected] ~/test/d $ cd .. [email protected] ~/test $ find -name "*.txt" | xargs rm -rf Administra[email protected] ~/test $ ls c.log d [email protected] ~/test $ ls d/ [email protected] ~/test $
      上面的命令就實現了面試題目要求的功能, find -name "*.txt" 實際上就是找當前目錄和子目錄下所有的.txt檔案, xargs會把管道傳過來的這些檔名傳遞給rm 命令, 因此, 這些.txt檔案就成功被刪除了。 看來,  xargs命令的功能確實強大。

       以後, 我們都要學會用xargs這個重要的命令。 下面, 我繼續介紹一個真實的場景:

       在某系統介面寫入一個引數, 寫入到系統中的某個資料庫.db檔案, 但問題是, 該系統的資料庫檔案有多個, 且位於不同的目錄下。 現在, 怎樣比較快速地判斷我們寫入的這個欄位到底寫進了哪個資料庫呢?怎樣查詢對應的欄位名稱呢?

       我想到了如下辦法, 經驗證, 切實可行。 其實, 很簡單, 步驟如下(md5sum命令之前就介紹過了, 所以不再贅述):

       1. 修改前, 在根目錄下執行:find -name "*.db" | xargs md5sum > a.txt

       2. 修改後, 在根目錄下執行:find -name "*.db" | xargs md5sum > b.txt

       3. 比較a.txt和b.txt檔案 : diff a.txt b.txt

       這樣的話, a.txt和b.txt的差別就知道了, 進而知道哪個.db檔案改變了, 也就知道對應的欄位寫入了哪個資料庫。 然後, 根據寫入的值, 就可以用SQL語言查詢到寫入的是哪個欄位了。

        假如場景變換一下, 要比較.so庫的差異, 怎麼辦呢? 都一樣, 大同小異。

        OK, xargs的介紹就到此為止, 一次面試經歷, 加上一次實戰經歷, 已經讓我愛上了這個命令。

        PS. 

       1.find命令中的雙引號""不可少。

       2.我後來發現了這個一個奇怪的現象: 某資料庫test.db檔案沒有變化(md5sum沒有變化), 但從中讀出來的值卻變化了? 這是為什麼呢? 唯一可能的原因是: 資料庫test.db會索引其他的檔案, 雖然test.db本身沒有變, 但索引的檔案變了。 我查了一下, 確實如此, 在test.db的同一目錄下, 還有對應的wal和shm檔案,  是這兩個檔案變化了。

相關推薦

Linuxxargs命令重要作用------順便分享面試經歷實戰經歷

        在某公司的某次面試中, 被問到這樣一個題目:如何刪除當前目錄和子目錄下所有的.txt檔案?  如果對linux命令不熟悉, 則看到題目就會有點傻眼。 當然, 如果你清楚xargs命令的作用, 那就好說了。 一句話:xagrs會接收管道傳過來的引數, 並傳給管

Linux引號的一些作用它們的區別以及檢查端口的一些命令與方法

雙引號 linux 檢查 ssh tracert 分享 inux 們的 不同 今天分享一下Linux中單引號、雙引號、反引號的區別,單引號的作用就是 單引號裏面的內容會原封不動的輸出 (所見所得),雙引號 與單引號類似 不同的就是裏面的特殊符號會被解析(運行),反引號 優先

Linux常見目錄的作用

執行 保存 配置文件 家目錄 pro 系統 配置 命令 dev bin目錄   有四個bin目錄,分別是/bin、/sbin、/usr/bin/、/usr/sbin/   用來保存系統命令,區別是 前兩個目錄下的命令所有用戶都可以執行,後兩個目錄下的命令只有超級用戶可以執

Linux 常用命令

ln -s directory 沒有 開始 media 關機命令 範圍 後臺作業 解壓縮 命令基本格式: 命令提示符:[[email protected]/* */ ~]# root 代表當前的登錄用戶(linux當中管理員賬號是root)

Linuxawk命令的簡單用法

.cn inux total com mage 簡單 image 用法 int 一、用例1:   cat /proc/meminfo|grep "MemTotal"|awk ‘{print $2}‘   說明,$2表示第2位,$0表示全部,如需表示$,可用$$轉義。

linuxwc命令用法

字節 統計字符 -- 幫助信息 linux系統 count 沒有 標準 讀取 Linux系統中的wc(Word Count)命令的功能為統計指定文件中的字節數、字數、行數,並將統計結果顯示輸出。 1.命令格式: wc [選項]文件... 2.命令功能: 統計指定文件中的字節

linuxexpect命令詳解

linux運維expect介紹expect 是由Don Libes基於Tcl(Tool Command Language )語言開發的,主要應用於自動化交互式操作的場景,借助Expect處理交互的命令,可以將交互過程如:ssh登錄,ftp登錄等寫在一個腳本上,使之自動化完成。尤其適用於需要對多臺服務器執行相同

linuxtop命令

ont def comm 均值 code virt neutron load 共享 #top top命令的第一行“ top - 19:56:47 up 39 min, 3 users, load average: 0.00, 0.00,

Linuxdd命令的用法

dddd命令: convert and copy a file用法:dd?if=/PATH/FROM/SRC?of=/PATH/TO/DEST bs=#:?block?size,?復制單元大小 count=#:復制多少個bs of=file?寫到所命名的文件而不是到標準輸出 if=file?從所命名文件讀取而

linuxgrep命令

出行 red 文本搜索 grep命令 cin spa 組合 方式 小數 grep 是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。 grep常用用法 [root@www ~]# grep [-acinv] [--color=auto] ‘搜尋字

linuxwget命令

tags ogr don pan 還需 web 全部 remote 參數 Linux系統中的wget是一個下載文件的工具,它用在命令行下。對於Linux用戶是必不可少的工具,我們經常要下載一些軟件或從遠程服務器恢復備份到本地服務器。wget支持HTTP,HTTPS和FTP

Linux禁用命令歷史記錄

linux中 命令 -o 禁用 登錄 home hist history class 關閉history記錄功能 set +o history 打開history記錄功能 set -o history 清空記錄 history -c 記錄被清空,重新登錄後恢復。

Linuxsource命令的用法

立即生效 常常 new 重新登錄 核心 linu 用戶 成功 多次 source命令:   source命令也稱為“點命令”,也就是一個點符號(.)。source命令通常用於重新執行剛修改的初始化文件,使之立即生效,而不必註銷並重新登錄。因為lin

LinuxReadlink命令

.net padding order symbol 可執行文件 tro anon spa RM 原文地址:http://blog.csdn.net/liangxiaozhang/article/details/7356829 readlink是Linux系統中一個常用工具,

linux tr 命令的基礎運用

trtr命令可以看作是sed的簡化形式,可以用來替換刪除字符。tr - translate or delete characters常用的命令格式為:tr -c -d -s 字符1 字符2 <文件名 | -c | 用字符2替換字符1中不包含的字符(字符1補集) | -d | 刪除字符串1

linuxat命令詳解

at一次性計劃任務 at詳解 系統命令 at命令: 一:簡介: 計劃任務,在特定的時間執行某項工作,在特定的時間執行一次,需要安裝at服務,apt-get install at 二:時間定義: at允許使用一套相當復雜的指定時間的方法。● 能夠接受在當天的hh:mm(小時:分鐘)式的時間指定。假如

Linuxtouch命令使用(創建文件)

inf access -c -- modify 連續 技術分享 lin 路徑 touch命令有兩個功能: 1.用於把已存在文件的時間標簽更新為系統當前的時間(默認方式),它們的數據將原封不動地保留下來; 2.用來創建新的空文件。 語法 touch(選項)(參數) 選

Linux常用命令pipe

必須 強調 std 而且 ss命令 strong 目錄下的文件 文件 last 大多數linux命令處理數據後都會輸出到標準輸出,但是如果數據要經過系列列的步驟處理後,才是需要的數據個數,這種需求就需要管道來幫助完成。 管道命令使用"|"作為界定符,將界定符前的命令的執行結

linuxtar命令用法

log mco file 並且 unrar 過程 lin 文件名 壓縮歸檔 -c: 建立壓縮檔案-x:解壓-t:查看內容-r:向壓縮歸檔文件末尾追加文件-u:更新原壓縮包中的文件 這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數是

以root用戶運行jenkinsshell命令 重要

grep chown 聲明 進程 jenkins配置 檢查 gre etc config 以centOS系統為例,記錄下修改Jenkins以root用戶運行的方法。 修改Jenkins配置文件 # 打開配置文件vim /etc/sysconfig/jenkins# 修改$J