Ⅰ linuxfind查找大於多少天的文件,並刪除之
linux查找超過一定時間的文件,並批量刪除
1、find . -maxdepth 4 -name "*-*" -mtime 3
-maxdepth的值決定是否對下面的子目錄進行遞歸查找
-mtime 3表示查找3天內的,-mtime +3表示查找超過3天的,也就是查找3天前的文件
2、find . -maxdepth 4 -name "*-*" -mtime 3 | sudo xargs rm -rf
-----------------------------------------------------------------------------------------------------------------------------
find ./ -maxdepth 4 -mtime +3 -a -mtime -20 -type f
-- 如果將xmaxdepth放置於-mtime之後,將會拋出這個錯誤
find: warning: you have specified the -maxdepth option after a non-option argument -mtime, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
-----------------------------------------------------------------------------------------------------------------------------
-mtime 0 表示文件修改時間距離當前為0天的文件,即距離當前時間不到1天(24小時)以內的文件。
-mtime 1 表示文件修改時間距離當前為1天的文件,即距離當前時間1天(24小時-48小時)的文件。
-mtime+1 表示文件修改時間為大於1天的文件,即距離當前時間2天(48小時)之外的文件
-mtime -1 表示文件修改時間為小於1天的文件,即距離當前時間1天(24小時)之內的文件
-----------------------------------------------------------------------------------------------------------------------------
-maxdepth 參數詳解
-maxdepth選項的作用就是限制find命令在目錄中按照遞減方式查找文件的時候搜索文件超過某個級別或者搜索過多的目錄,這樣導致查找速度變慢,查找花費的時間過多。例如,我們要在當前(.)目錄技巧子目錄中查找一個名叫fred的文件,我們可以使用如下命令
find . -maxdepth 2 -name fred
假如這個fred文件在./sub1/fred目錄中,那麼這個命令就會直接定位這個文件,查找很容易成功。假如,這個文件在./sub1/sub2/fred目錄中,那麼這個命令就無法查找到。因為前面已經給find命令在目錄中最大的查詢目錄級別為2,只能查找2層目錄下的文件。這樣做的目的就是為了讓find命令更加>
精確的定位文件,如果你已經知道了某個文件大概所在的文件目錄級數,那麼加入-maxdepth n 就很快的能在指定目錄中查找成功。
也即是-maxdepth 參數指定遞歸查找級別,如果-maxdepth 2 則查找當前目錄遞歸查找2層,-maxdepth 4 則查找當前目錄遞歸查找4層。
Ⅱ linux下開發腳本搜索子目錄批量更改文件名
前言
本文主要給大家介紹了關於Linux shell用sed批量更改文件名的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
示例
去除特定字元
目標:將 2017-01-01.jpg、2018-01-01.jpg 改為 20170101.jpg、20180101.jpg
方法:將所有 - 替換為空
for file in `ls | grep .jpg`
do
newfile=`echo $file | sed 's/-//g'`
mv $file $newfile
done
這里使用sed進行標准輸出的字元串替換,其通用格式如下:
stdout | sed 's/pattern/replace/'
上述示例中,在末尾添加g用於替換所有匹配項,而不僅僅替換第一個匹配項。
中間插入字元
目標:將 book01.txt、paper02.txt 改為 book-01.txt、paper-02.txt
方法:用分組匹配分別獲取待插入位置兩側的字元串,再通過反向引用實現替換
for file in `ls | grep .txt`
do
newfile=`echo $file | sed 's/\([a-z]\+\)\([0-9]\+\)/\1-\2/'`
mv $file $newfile
done
分析
上述示例首先通過 ls 和 grep 命令得到待改名的文件列表,然後用 sed 命令進行字元串的替換,最後再使用 mv 命令來完成文件名的更改。
獲取待改名文件列表的方法有很多,可以通過 find 命令,也可以直接給出字元串,我們將在下文中提到。
注意 for 循環後面的 ls | grep .txt,這條命令用兩個反單引號括了起來,與 $(ls | grep .txt) 的作用相同,被包圍的字元串會被當作命令執行,然後返回字元串結果。
文件名包含空格的解決方法
我們可以直接將文件列表寫到 for 循環中,而不是通過命令來得到,例如:
for file in "file1 file2 file3"
do
...
done
可以看到 for 循環是通過空格來分割字元串,因此如果待更改的文件名中包含空格的話,就會被拆分成多個文件名,從而出錯。
要解決這個問題,我們可以將 IFS(內部欄位分隔符)設置為換行符 \n,這樣一來,for 循環就會按行來獲取變數的值,確保每次獲取的確實是一個完整的文件名。
設置 IFS 變數的命令需要放在 for 循環之前:
IFS=$'\n'
for file in `ls`
do
...
done
也可以直接使用 while read 命令一次讀取一行到變數 file 中:
ls | grep "*.txt" | while read file
do
...
done
使用 find 獲取文件列表
之前的示例中,我們是通過 ls 命令來獲取文件列表。該命令只能獲取某個目錄的文件,而且沒法進行多種條件的篩選。
而一說到文件的查找,不得不提到功能強大的 find 命令。該命令可以在多個層次的目錄中查找文件,並能夠設定諸如創建時間、文件大小、所有者等多種條件,查找起文件來特別方便靈活。
用 find 命令來獲取文件列表,再用 sed 命令配合正則表達式來修改文件名,這兩個命令的結合幾乎能完成所有常見的批量改名任務。
例如,將所有大於1M,且後綴為txt或jpg的文件,由形如 book_20170101.txt、image_20170101.jpg 的文件改名為 20170101-book.txt、20170101-image.jpg,代碼如下:
for file in `find . -size +1M -name "*_*.txt" -o -name "*_*.jpg"`
do
newfile=`echo $file | sed 's/\([a-z]\+\)_\([0-9]\+\)./\2-\1./'`
mv $file $newfile
done
Ⅲ linux find命令詳解
find命令可將檔案系統內符合 expression 的檔案列出來。你可以指要檔案的名稱、類別、時間、大小、許可權等不同資訊的組合,只有完全相符的才會被列出來。
find 根據下列規則判斷 path 和 expression,在命令列上第一個 - ( ) , ! 之前的部分為 path,之後的是 expression。還有指DOS 命令 find,Excel 函數 find等。
(3)linux批量查找擴展閱讀:
linux的其他類似find命令詳解:grep
用於查找文件中符合字元串的那行。
e.g. grep -nr "network_ssl" ./ [查找當前文件夾下所有文件內容,列出包含有 network_ssl該字串的行,並顯示行號]
參數說明:-a :將 binary 文件以 text 文件的方式搜尋數據
-c :計算找到 '搜尋字元串' 的次數
-i :忽略大小寫的不同,所以大小寫視為相同
-n :順便輸出行號
-v :反向選擇,亦即顯示出沒有 '搜尋字元串' 內容的那一行!
Ⅳ linux怎麼查看域名linux怎麼查看域名的ip
如何在Linux下通過命令查看域名對應的IP
在實際工作或維護中,經常需要通過域名查詢對應的IP地址。解決這個問題的方法有很多,可以通過互聯網上提供的IP查詢工具查詢,也可以通過Linux系統中的命令查詢。本教程主要講解如何在Linux系統中通過命令檢查域名對應的IP地址,主要講解以下五個命令:
Dig命令這是一個強大而靈活的命令行工具,用於查詢DNS名稱伺服器。它執行DNS查詢並顯示從查詢的名稱伺服器返回的信息。大多數DNS管理員使用dig命令來解決DNS問題,因為它靈活、易用、輸出清晰。
如何使用dig命令查找域的IP地址?看看這個例子:
輸出:
當然,如果需要一次查詢多個域名的IP地址,可以將多個域名的信息放入一個文本文件中,每行一個,然後編寫一個shell腳本讀取文件然後批量查詢輸出。
腳本命令類似於以下內容:
host命令可用於執行DNS查詢。它通常用於將名稱轉換為IP地址,反之亦然。如果沒有提供參數或選項,主機將列印其命令行參數和選項的摘要。
輸出:
類似地,批量查詢可以通過編寫shell腳本來實現,如下所示:
nslookup命令是一個用於查詢Internet域名伺服器(DNS)的程序。
nslookup有兩種模式,互動式和非互動式。交互模式允許用戶查詢名稱伺服器以獲得關於各種主機和域的信息,或者列印域中主機的列表。非交互模式用於僅列印主機名或域名以及請求的信息。
它是一個網路管理工具,可以幫助診斷和解決DNS相關的問題。命令示例如下:
輸出:
類似地,使用下面的bash腳本來查找多個域的IP地址
fping命令是一個類似ping的程序,它使用Internet控制消息協議(ICMP)回應請求來確定目標主機是否響應。
Fping不同於ping,因為它允許用戶並行ping任意數量的主機。此外,它可以從文本文件輸入到主機。
Fping發送ICMP回應請求,以循環方式移動到下一個目標,不等待目標主機響應。
如果目標主機回復,將其標記為活動主機,並將其從要檢查的目標列表中刪除;如果目標在特定的時間限制和/或重試限制內沒有響應,則它被指定為不可訪問。
默認情況下,fping命令程序不安裝在Linux發行版中,但通常需要安裝。常見的分發安裝命令如下:
Ubuntu/Debian/LinuxMint
Fedora/CentOS/RHEL
fping的默認用法示例:
輸出:
更多關於fping的用法可以通過在終端中鍵入manfping來了解。
Ping命令(數據包互聯網探測器)是一種網路程序,用於測試互聯網協議(IP)網路上主機的可用性/連接性。
ping命令通過向目標主機發送Internet控制消息協議(ICMP)回應請求數據包並等待ICMP回應回復來驗證主機的可用性。
它根據發送的數據包、接收的數據包、丟失的數據包總結統計結果,通常包含最小/平均/最大時間。
命令示例:
輸出:
我們可以在輸出內容中看到相應的IP地址。如果需要過濾輸出,添加更多相應的命令處理:
輸出:
以上內容是在Linux系統中使用五個命令獲取域名對應的IP地址。建議你可以在自己的伺服器或者自己的Linux上嘗試一下,也可以編寫shell腳本進行批處理或者通過相應的命令處理輸出,輸出你想要的東西。
linux怎麼將域名加入到host文件中?
linux可以通過vi命令來將域名加入到host文件。
Linux入門基礎:DNS基礎及域名系統架構?
DNS:域名及域名系統DNS:域名採用層次結構的基於「域」的命令方案,每一層由一個子域名組成,子域名間用「.」分隔,其格式為:機器名.網路名.機構名.最高域名.Internet上的域名由域名系統DNS統一管理.DNS是一個分布式資料庫系統,由域名空間.域名伺服器和地址轉換請求程序三部分組成,用來實現域名和IP地址之間的轉換。
linux伺服器怎麼綁定域名?
如有兩個域名,分別是
http://hi-andy.com
和http://hi-neo.com
,需把這兩個域名都綁定到IP是219.13.34.32的伺服器上
1.首先需在域名供應商管理頁面指定域名和IP的對應關系(將兩個域名解析到一個IP上)
2.假定已經配置過LAMP環境
3.網站對應的源碼分別放在/var/www/目錄下的hi-andy和hi-neo文件夾下
4.配置apache
httpd.conf
#配置完成重啟服務