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檔案, 是這兩個檔案變化了。
相關推薦
Linux中xargs命令的重要作用------順便分享一次面試經歷和一次實戰經歷
在某公司的某次面試中, 被問到這樣一個題目:如何刪除當前目錄和子目錄下所有的.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)
Linux中awk命令的簡單用法
.cn inux total com mage 簡單 image 用法 int 一、用例1: cat /proc/meminfo|grep "MemTotal"|awk ‘{print $2}‘ 說明,$2表示第2位,$0表示全部,如需表示$,可用$$轉義。
linux中wc命令用法
字節 統計字符 -- 幫助信息 linux系統 count 沒有 標準 讀取 Linux系統中的wc(Word Count)命令的功能為統計指定文件中的字節數、字數、行數,並將統計結果顯示輸出。 1.命令格式: wc [選項]文件... 2.命令功能: 統計指定文件中的字節
linux中expect命令詳解
linux運維expect介紹expect 是由Don Libes基於Tcl(Tool Command Language )語言開發的,主要應用於自動化交互式操作的場景,借助Expect處理交互的命令,可以將交互過程如:ssh登錄,ftp登錄等寫在一個腳本上,使之自動化完成。尤其適用於需要對多臺服務器執行相同
linux中top命令
ont def comm 均值 code virt neutron load 共享 #top top命令的第一行“ top - 19:56:47 up 39 min, 3 users, load average: 0.00, 0.00,
Linux中dd命令的用法
dddd命令: convert and copy a file用法:dd?if=/PATH/FROM/SRC?of=/PATH/TO/DEST bs=#:?block?size,?復制單元大小 count=#:復制多少個bs of=file?寫到所命名的文件而不是到標準輸出 if=file?從所命名文件讀取而
linux中grep命令
出行 red 文本搜索 grep命令 cin spa 組合 方式 小數 grep 是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。 grep常用用法 [root@www ~]# grep [-acinv] [--color=auto] ‘搜尋字
linux中wget命令
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 記錄被清空,重新登錄後恢復。
Linux中source命令的用法
立即生效 常常 new 重新登錄 核心 linu 用戶 成功 多次 source命令: source命令也稱為“點命令”,也就是一個點符號(.)。source命令通常用於重新執行剛修改的初始化文件,使之立即生效,而不必註銷並重新登錄。因為lin
Linux中Readlink命令
.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
linux中at命令詳解
at一次性計劃任務 at詳解 系統命令 at命令: 一:簡介: 計劃任務,在特定的時間執行某項工作,在特定的時間執行一次,需要安裝at服務,apt-get install at 二:時間定義: at允許使用一套相當復雜的指定時間的方法。● 能夠接受在當天的hh:mm(小時:分鐘)式的時間指定。假如
Linux中touch命令使用(創建文件)
inf access -c -- modify 連續 技術分享 lin 路徑 touch命令有兩個功能: 1.用於把已存在文件的時間標簽更新為系統當前的時間(默認方式),它們的數據將原封不動地保留下來; 2.用來創建新的空文件。 語法 touch(選項)(參數) 選
Linux中常用命令pipe
必須 強調 std 而且 ss命令 strong 目錄下的文件 文件 last 大多數linux命令處理數據後都會輸出到標準輸出,但是如果數據要經過系列列的步驟處理後,才是需要的數據個數,這種需求就需要管道來幫助完成。 管道命令使用"|"作為界定符,將界定符前的命令的執行結
linux中tar命令用法
log mco file 並且 unrar 過程 lin 文件名 壓縮歸檔 -c: 建立壓縮檔案-x:解壓-t:查看內容-r:向壓縮歸檔文件末尾追加文件-u:更新原壓縮包中的文件 這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數是
以root用戶運行jenkins中shell命令 重要
grep chown 聲明 進程 jenkins配置 檢查 gre etc config 以centOS系統為例,記錄下修改Jenkins以root用戶運行的方法。 修改Jenkins配置文件 # 打開配置文件vim /etc/sysconfig/jenkins# 修改$J