導航:首頁 > 文件類型 > linux文件夾遍歷

linux文件夾遍歷

發布時間:2023-05-26 02:16:42

『壹』 linux查找目錄下的所有文件中是否含有某個字元串

find . -name *.* |xargs grep "字元串"
可以搜索當前目錄下所有文件,包括子目錄下的文件

『貳』 linux文件操作命令有哪些

新建文件:
1.新建文件夾命令:mkdir 文件夾名稱
2.創建文檔就用:vi 文件名,然後就可以編輯文檔了,退出的時候依次按 -> : ->x 就退出並保存了,:wq 保存後退出。:x 同「 wq」。:q! – 不保存內容, 強制退出。

刪除文件:
1.刪除文件夾:rm [選項] 文件夾名稱。如rm -r test
2.刪除文件:rm 文件名 。如:rm test.txt

修改文件:
1.vi命令。vi 文件名這樣就可以打開一個文件,再點擊i就可以進入編輯了。其實編輯命令還有:o,a。我這里比較熟悉i的使用:退出點擊esc鍵,就進入命令模式。
我這里找了一些常見的命令,如下:
x:刪除當前字元。
dd:刪除當前行。
2dd:刪除文件的當前行和後一行。
u:恢復前一步操作。
p:復制之前刪除的行。
yy:復制游標所在的整行。
2yy:復制2行,舉一反三 3yy。
p:粘貼到游標的後面。

查看文件:
1.查看目錄下的所有文件又2種命令:ll 和ls 。 ll會列出該文件下的所有文件信息,包括隱藏的文件,而ls 只列出顯式文件名。
2.查看某個文件內容也有2種:cat 和 vi 。cat主要有三大功能:一次顯示整個文件:$ cat filenam 、從鍵盤創建一個文件:$ cat > filename 只能創建新文件,不能編輯已有文件、將幾個文件合並為一個文件: $cat file1 file2 > file .
vi實際上是文件編輯命令,但是也可以查看文件。

『叄』 如何使用Unix/Linux find命令

find 命令是 UNIX程序員的技能中功能最強大和最有用的命令之一。它通過許多強大的支持方式,讓文件查找顯示任務變得更加輕松。
find命令實例:

1.基於 目錄/文件名稱/文件類型 來搜索
在當前目錄或子目錄中查找所有html文件,我們可以使用:

find -name "*.html" -type f
在/usr/bin中查找所有sh文件find /usr/bin -name "*.sh" -type f

該命令有兩個測試條件,第一個,「-name」用於檢驗搜索過程中的每個文件名,如果你需要對大小寫敏感,可以使用「-iname」代替。第二個參數是「-type」,
它用於指定你感興 趣的文件類型。「f」表示我們查找的是普通文件,我們可以使用「d」表示目錄或使用「l」或"s"表示符號連接。在find 手冊中可以看到該工具的所有選項。

find /-maxdepth 1 -name "*.html" -type f

Tips:將-maxdepth選項放在最前面
默認情況下,find遍歷所有子目錄,但是你可以通過指定最大深度來控制這個行為。在前面的例子中,如果我們只想搜索這兩個目錄不想搜索下一層,你可以 添加「-maxdepth 1」到命令中。設置最大深度為0表示只檢驗命令行中的給定文件。同樣,你可以設定最小深度,從而避免搜索位於根目錄的文件。
2.基於 用戶/用戶組 來搜索

find 的另一個應用是搜索屬於某個給定用戶的文件,因此為了搜索我的系統中所有屬於我的文件,我使用以下命令:

find / -user gary
同樣可以搜索基於組用戶的文件,使用「-group」參數。

3.基於 文件相關的時間特徵 來搜索
相關選項:
分別使用「-ctime」,「-atime」和「-mtime」參數來指定最後創建時間,最後訪問時間和最後修改時間。(單位是"天")
如果你需要更精確地搜索,可以使用分鍾變數「-cmin」,「-amin」和「-mmin」。

find ./ -mtime 0 ;返回最近24小時內修改過的文件。./代表需要查找的文件夾
find ./ -mtime 1 返回的是前48~24小時修改過的文件。而不是48小時以內修改過的文件。
find -ctime -1 搜索最近兩天創建的文件

注意:
1前面的「-」表示我們是從今天向以前的日期范圍搜索,與數字前面沒有"-"是有區別的。如果你剛犯了一個錯誤但不確定會影響到那些文件,
這很簡單可以使用如下查詢:find -mmin -5
可以用以下命令查看atime和ctime
ls -lu 或者 ls -l --time=atime 顯示文件的atime
ls -lc 或者 ls -l --time=ctime 顯示文件的ctime
在提供一個例子,搜索當前目錄下前20分鍾到10分鍾修改過的文件。

find . -mmin +9 -mmin -21

還可以使用 "-newer","-anewer","-cnewer"參數來指定一個文件,將其與要搜索的文件進行時間的比較。
• -newer 指內容最近被修改的文件
• -anewer 指最近被讀取過的文件
• -cnewer 指狀態最近發生變化的文件(查看文件狀態命令 stat filename)
例如,查找在sum.java 之後修改的文件

find -newer "sum.java"

4.基於 文件的大小 來搜索
例如我們知道一個Linux文件大小為1,500 bytes,那麼我們可是使用如下命令來查詢

find . -size 1500c

字元 c 表明這個要查找的文件的大小是以bytes為單位。如果我們連這個文件的具體大小都不知道,那麼在Linux中還可以進行模糊查找方式來解決。例如我們輸 入

find . -size +10000000c
這個命令,則標明我們指定系統在根目錄中查找出大於10000000位元組的文件並顯示出來。命令中的「+」是表示要求系統只列出大於指定大小的文件,

而使 用「-」則表示要求系統列出小於指定大小的文件。
還有很多例子,
搜索大小為10M的文件

find . -size 10M

搜索大於10M的文件

find . -size +10M

找到小於10M的文件

find . -size -10M

要列出所有長度為零的文件,請使用下面的命令:
find . -empty - exec ls {} \

在查找到空文件之後,您可以選擇用 rm 命令來代替ls 命令,以刪除這些文件。
5. 基於 文件的許可權 來搜索
查找當前目錄下所有文件許可權為755的文件

find . -perm 755 -print

6.使用混合查找方式查找文件
find命令可以使用混合查找的方法,例如我們想在/tmp目錄中查找大於100000000位元組並且在48小時內修改的某個文件,我們可以使用-and來把兩個查找選項鏈接
起來組合成一個混合的查找方式。

find /tmp -size +10000000c -and -mtime +2

如何搜索修蓋時間介於f1與f2各自的修改時間之間的文件?

find . -newer f1 -and ! -newer f2 //f1的修改時間應早於f2的修改時間

學習過計算機語言的朋友都知道,在計算機語言里,使用and ,or 分別表示「與」和「或」的關系。在Linux系統的查找命令中一樣通用。
還有這樣的例子,

find / -user fred -or -user george

我們可以解釋為在/tmp目錄中查找屬於fred或者george這兩個用戶的文件。
在find命令中還可以使用「非」的關系來查找文件,如果我們要在/tmp目錄中查找所有不屬於panda的文件,使用一個簡單的

find /tmp ! -user panda

更好的利用find
7.快速執行上一次的find命令而不用重復輸入參數

!find

事實上,"!"可以用在任何unix/linux命令的前面,以執行上一條同種類型的命令。
8.改變顯示結果
find對文件執行的標准行為是顯示出文件名,這就是為什麼如果你跟蹤結果,就會看到一系列文件名的原因。如果你想使用這些結果作為另外一個過濾器的輸入的話,
這將會十分有用。但是如果你需要結果的更多信息,你可以令find輸出與ls –l同樣的結果:

find -user gary -iname "*.html" -ls

這個命令將會返迴文件許可權和時間信息。
9.將搜索結果作為程序的輸入
可以通過使用「-exec」參數,來讓find命令對每個搜索結果運行任何程序。
如果要刪除當前目錄中所有擴展名為「.tmp」的文件。

find -name ".tmp" -exec rm {} \ ; //注意結尾分號

上面兩個大括弧將會被相應的文件名代替,反斜杠用來告訴find何時命令結束。
find常和chmod結合使用快速改變大量文件的文件許可權,或者和grep與sed結合使用來選擇性的搜索或使用正則表達式修改文本。使用它作為一個腳本的輸入,
你可以讓費 時的任務自動完成,例如清除一年內沒有訪問的文件,或者自動備份修改的文件。
10.查找並顯示文件的方法
查找到某個文件是我們的目的,我們更想知道查找到的文件的詳細信息和屬性,如果我們採取現查找文件,在使用LS命令來查看文件信息是相當繁瑣的,
現在我們也可以把這兩個命令結合起來使用。

find / -name "httpd.conf" -ls

系統查找到httpd.conf文件後立即在屏幕上顯示httpd.conf文件信息。
12063 34 -rw-r--r-- 1 root root 33545 Dec 30 15:36 /etc/httpd/conf/httpd.conf
下面的表格就是一些常用的查找文件並顯示文件信息的參數和使用方法

選項

用途描述

-exec command

查找並執行命令

-fprint file

列印文件完整文件名

-fprint0 file

列印文件完整文件名包括空的文件

-fprintf file format

列印文件格式

-ok command

給用戶命令執行操作,根據用戶的Y確認輸入執行

-printf format

列印文件格式

-ls

列印同種文件格式的文件

參考:
[1].linux/unix中如何用find命令詳解
http://www.tongcx.com/node/86
[2].使用 UNIX find 命令的高級技術
http://www.ibm.com/developerworks/cn/aix/library/es-unix-find.html
[3].10 Example of find command in Unix and Linux (對find命令的基本用法以及高級技巧都有介紹)
http://javarevisited.blogspot.com/2011/03/10-find-command-in-unix-examples-basic.html
[4].Top 10 examples of find command in unix and linux
http://www.cloudhadoop.com/2012/02/top-10-examples-of-find-command-in-unix.html
[5].Find Command in Unix and Linux Examples (極豐富的關於find命令的例子)
http://www.folkstalk.com/2011/12/101-examples-of-using-find-command-in.html
[6].A Unix/Linux 「find」 Command Tutorial (實用的,短小精悍的教程)
http://content.hccfl.e/pollock/Unix/FindCmd.htm

『肆』 linux shell遍歷當前文件夾中的txt文件並處理生成新的文件

先以a.txt為例:

awk-vRS=""'{
n=split($0,a,"《[^》]+》");
for(i=2;i<n;i+=2)
print"《keywords》"a[i]"《/keywords》"
}'a.txt>>./newfile/a.txt

這樣就行了。

為了可讀性,我將一條awk語句寫成了多行。回

實際測試結答果如下:

解說:

RS=""

將awk的記錄分隔符設置為空(默認是換行符),即將整個a.txt文本看做一條記錄。

n = split($0,a,"《[^》]+》");

以正則"《[^》]+》"匹配的內容作為分隔符,對文本內容進行分割並將分割結果存入數組a,分割出的數目(數組大小)即為split函數的返回值n。這里暫且不對該正則做過多解釋,否則喧賓奪主,有需要請追問,我再補充。

for(i=2;i<n;i+=2)
print "《keywords》"a[i]"《/keywords》"

列印數組下標為偶數的元素並在首尾分別加上關鍵字標記以還原。數組下標從1開始。

其他文件可作相同處理。如果文件較多,你可以搞個循環去做。這個應該不難。

『伍』 linux C 中的文件夾遍歷dirent d_type表明該文件的類型 跪求~~~

enum

{

DT_UNKNOWN = 0,

# define DT_UNKNOWN DT_UNKNOWN

DT_FIFO = 1,

# define DT_FIFO DT_FIFO

DT_CHR = 2,

# define DT_CHR DT_CHR

DT_DIR = 4,

# define DT_DIR DT_DIR

DT_BLK = 6,

# define DT_BLK DT_BLK

DT_REG = 8,

# define DT_REG DT_REG

DT_LNK = 10,

# define DT_LNK DT_LNK

DT_SOCK = 12,

# define DT_SOCK DT_SOCK

DT_WHT = 14

# define DT_WHT DT_WHT

};

這是d_type的枚舉類型..........每個值表示一個類型..........4是目錄,0是未知,1是管道,2是字元設備,8表示文件...............6是塊設備..........其他的都如字面表示..........很容易區分.........

『陸』 Linux Shell:Shell循環語句

摘要: Linux , Shell

Shell中常用循環有 for , while

for循環只能用於 固定次數 的循環,因此不能無限循環和用於一些在後台守護進程一直運行的程序,語法語句如下

也可以寫成一行,用 ; 分隔

取值列表內元素以空格隔開,如果元素帶有空格則用引號包裹起來,例子如下

輸出如下,可見循環到最後退出循環,引用變數依舊是最後一個取值列表元素

一行的寫法

Shell的for循環也可以採用C語言的寫法,注意是 雙括弧 ,用 分號; 間隔

一個簡單例子

while循環語句結合條件測試使用,語法如下

舉一個例子

在循環中使用條件測試實現復雜的邏輯,例如

也可以使用&&,||一行完成,省去if,fi

Shell的continue,break語句和Python一樣,例子如下
break語句下輸出4

continue語句下輸出4 6 7 8 9 10

常見結合使用的循環體有 序列 , 數組 , 命令行傳參 , 文件目錄和文件

序列通過 seq 命令或者 {begin..end..step} 符號進行定義:

結合for循環使用案例

在Shell中使用小括弧 () 定義數組,數組遍歷使用 [@] 符號,防止元素有空格用雙引號包起來,,例子如下

命令行傳參遍歷使用固定符號 $@ ,如果參數中有空格,用雙引號括起來,例子如下

文件遍歷使用 ls 命令,可以指定目錄,以及通配符匹配

一個雙重循環實現,注意 expr表達式中乘號要加轉移符

(2)將某目錄下大小大於閾值的文件移動到另一個文件
遍歷循環一個目錄,使用awk語法獲得文件大小,將100m以上的文件移動到另一個文件夾

(2)指定開始日期和結束日期完成一個跑批任務
指定一個開始時間和結束時間,while從開始日期一直自增到結束日期循環結束,通過 date -d 񟭕-01-01 1day' +%Y-%m-%d 自增一天

閱讀全文

與linux文件夾遍歷相關的資料

熱點內容
什麼是機靈數據 瀏覽:724
ecshop配置文件 瀏覽:116
excel兩個表格怎麼對比相同數據 瀏覽:383
ps4港服文件怎麼弄 瀏覽:560
蘋果6splusnote5s6 瀏覽:426
定向流量30G都包括哪些APP 瀏覽:352
apple和瑤瑤綜藝 瀏覽:351
打開word所在文件夾自動彈出 瀏覽:390
c怎麼編程改名字 瀏覽:146
哪些電視劇app不帶logo的 瀏覽:406
開機後桌面變黑色桌面文件丟失 瀏覽:136
網路電視怎麼用遙控器 瀏覽:953
我的世界json打開失敗 瀏覽:867
易語言56教程視頻 瀏覽:610
linux開機啟動文件 瀏覽:773
給寶寶唱兒歌用什麼app 瀏覽:354
投標文件為什麼要使用cad軟體 瀏覽:522
一季度保險業務數據如何看 瀏覽:398
為什麼行車記錄儀文件大小為0 瀏覽:795
win10筆記本傳輸文件 瀏覽:735

友情鏈接