Linux查看文件是否存在
❶ linux怎樣實現一個C函數檢查文件夾是否存在,如果不存在,創建它,只能使用標准庫
這個玩意有標准庫,看書上的例字,一定是有寫的,
就是在存取文件的那部分章節。
ps:你搜io.h,file.h,應該就有……
❷ linux命令行怎麼查看指定文件在哪
在使用linux時,經常需要進行文件查找。其中查找的命令主要有find和grep。兩個命令是有區的。區別:(1)find命令是根據文件的屬性進行查找,如文件名,文件大小,所有者,所屬組,是否為空,訪問時間,修改時間等。
(2)grep是根據文件的內容進行查找,會對文件的每一行按照給定的模式(patter)進行匹配查找。
一.find命令
基本格式:find path expression
1.按照文件名查找
(1)find / -name httpd.conf#在根目錄下查找文件httpd.conf,表示在整個硬碟查找
(2)find /etc -name httpd.conf#在/etc目錄下文件httpd.conf
(3)find /etc -name '*srm*'#使用通配符*(0或者任意多個)。表示在/etc目錄下查找文件名中含有字元串『srm』的文件
(4)find . -name 'srm*' #表示當前目錄下查找文件名開頭是字元串『srm』的文件
2.按照文件特徵查找
(1)find / -amin -10 # 查找在系統中最後10分鍾訪問的文件(access time)
(2)find / -atime -2 # 查找在系統中最後48小時訪問的文件
(3)find / -empty # 查找在系統中為空的文件或者文件夾
(4)find / -group cat # 查找在系統中屬於 group為cat的文件
(5)find / -mmin -5 # 查找在系統中最後5分鍾里修改過的文件(modify time)
(6)find / -mtime -1 #查找在系統中最後24小時里修改過的文件
(7)find / -user fred #查找在系統中屬於fred這個用戶的文件
(8)find / -size +10000c#查找出大於10000000位元組的文件(c:位元組,w:雙字,k:KB,M:MB,G:GB)
(9)find / -size -1000k #查找出小於1000KB的文件
3.使用混合查找方式查找文件
參數有: !,-and(-a),-or(-o)。
(1)find /tmp -size +10000c -and -mtime +2 #在/tmp目錄下查找大於10000位元組並在最後2分鍾內修改的文件
(2)find / -user fred -or -user george #在/目錄下查找用戶是fred或者george的文件文件
(3)find /tmp ! -user panda#在/tmp目錄中查找所有不屬於panda用戶的文件
二、grep命令
基本格式:find expression
1.主要參數
[options]主要參數:
-c:只輸出匹配行的計數。
-i:不區分大小寫
-h:查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字元的文件名。
-n:顯示匹配行及行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的所有行。
pattern正則表達式主要參數:
\: 忽略正則表達式中特殊字元的原有含義。
^:匹配正則表達式的開始行。
$: 匹配正則表達式的結束行。
\<:從匹配正則表達 式的行開始。
\>:到匹配正則表達式的行結束。
[ ]:單個字元,如[A]即A符合要求 。
[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。
.:所有的單個字元。
* :有字元,長度可以為0。
❸ linux shell 判斷文件是否存在
介紹了linux shell 中判斷文件、目錄是否存在的方法,分享給大家
-e filename 如果 filename存在,則為真
-d filename 如果 filename為目錄,則為真
-f filename 如果 filename為常規文件,則為真
-L filename 如果 filename為符號鏈接,則為真
-r filename 如果 filename可讀,則為真
-w filename 如果 filename可寫,則為真
-x filename 如果 filename可執行,則為真
-s filename 如果文件長度不為0,則為真
-h filename 如果文件是軟鏈接,則為真
❹ linux shell 如何判斷一個文件是否存在
了解你的意思,首先,test命令是判斷某一個特定的文件相關信息,也就是當你使用test這個命令的時候,你是清楚它叫什麼名字的(只是你不知道它的相關信息)。如果你要判斷比如你說的以hbc*開頭的一類文件,最好就是使用ls命令或者find命令來作。你可以參考一下,下面的小測試。
mike
>>>
ls
-d
???
12-04-20
23:15
acp/
apc/
scl
tmp/
xmy/
mike
>>>
test
-d
x??
12-04-20
23:15
mike
>>>
echo
$?
12-04-20
23:16
0
mike
>>>
test
-d
x*
12-04-20
23:16
test:
too
many
arguments
使用find命令能很好查找已hbc開頭的文件或者目錄,但是它不能判斷有沒有這樣的文件,因為你不能通過find的命令執行狀態來判斷是否有這樣的文件,但是可以把find的輸出導向到一個文件,從而對文件進行判斷。如下:
mike
>>>
find
./
-type
d
-name
"FUK*"
-print
12-04-20
23:24
mike
>>>
echo
$?
12-04-20
23:24
0
❺ Linux下怎樣搜索文件
linux下最強大的搜索命令為」find「。它的格式為」find <指定目錄> <指定條件> <指定動作>「;比如使用find命令搜索在根目錄下的所有interfaces文件所在位置,命令格式為」find / -name 'interfaces'「
使用locate搜索linux系統中的文件,它比find命令快。因為它查詢的是資料庫(/var/lib/locatedb),資料庫包含本地所有的文件信息。使用locate命令在根目錄下搜索interfaces文件的命令為」locate interfaces「
使用」whereis「命令可以搜索linux系統中的所有可執行文件即二進制文件。使用whereis命令搜索grep二進制文件的命令為」whereis grep「。
4
使用which命令查看系統命令是否存在,並返回系統命令所在的位置。使用which命令查看grep命令是否存在以及存在的目錄的命令為」which grep「。
5
使用type命令查看系統中的某個命令是否為系統自帶的命令。使用type命令查看cd命令是否為系統自帶的命令;查看grep 是否為系統自帶的命令。
❻ linux中怎麼查看文件是否存在
兩個方式:find命令或者shell腳本。
1、find命令
find是linux下用於查找文件的通用方法。
find語法: find [指定查找目錄] [查找規則] [查找完後執行的action]
例如:find /tmp -name wa* -type l ,是在/tmp下查找名為wa開頭且類型為符號鏈接的文件。找到就表示存在。
2、shell腳本
在進行文件的自動處理中常常需要自動判別,下面的腳本判斷test.log是否存在,存在則顯示文件存在,否則顯示文件不存在。
例子:編輯一個腳本判斷文件是否存在
vi t.sh
#!/bin/bash
if [ -e /temp/test.log ];then //這里是判斷語句,-e表示進行比較結果為真則存在
echo "文件存在"
else
echo "文件不存在"
fi
保存退出
執行:
sh t.sh
❼ linux中怎麼查找文件夾是否存在
linux中使用find命令來查找文件夾,使用find
/
-name
要查找的文件夾名
-type
d方式來查找。
find命令說明
語法
find(選項)(參數)
選項
-amin<分鍾>:查找在指定時間曾被存取過的文件或目錄,單位以分鍾計算;
-anewer<參考文件或目錄>:查找其存取時間較指定文件或目錄的存取時間更接近現在的文件或目錄;
-atime<24小時數>:查找在指定時間曾被存取過的文件或目錄,單位以24小時計算;
-cmin<分鍾>:查找在指定時間之時被更改過的文件或目錄;
-cnewer<參考文件或目錄>查找其更改時間較指定文件或目錄的更改時間更接近現在的文件或目錄;
-ctime<24小時數>:查找在指定時間之時被更改的文件或目錄,單位以24小時計算;
-daystart:從本日開始計算時間;
-depth:從指定目錄下最深層的子目錄開始查找;
-expty:尋找文件大小為0
byte的文件,或目錄下沒有任何子目錄或文件的空目錄;
-exec<執行指令>:假設find指令的回傳值為true,就執行該指令;
-false:將find指令的回傳值皆設為false;
-fls<列表文件>:此參數的效果和指定「-ls」參數類似,但會把結果保存為指定的列表文件;
-follow:排除符號連接;
-fprint<列表文件>:此參數的效果和指定「-print」參數類似,但會把結果保存成指定的列表文件;
-fprint0<列表文件>:此參數的效果和指定「-print0」參數類似,但會把結果保存成指定的列表文件;
-fprintf<列表文件><輸出格式>:此參數的效果和指定「-printf」參數類似,但會把結果保存成指定的列表文件;
-fstype<文件系統類型>:只尋找該文件系統類型下的文件或目錄;
-gid<群組識別碼>:查找符合指定之群組識別碼的文件或目錄;
-group<群組名稱>:查找符合指定之群組名稱的文件或目錄;
-help或——help:在線幫助;
-ilname<範本樣式>:此參數的效果和指定「-lname」參數類似,但忽略字元大小寫的差別;
-iname<範本樣式>:此參數的效果和指定「-name」參數類似,但忽略字元大小寫的差別;
-inum<inode編號>:查找符合指定的inode編號的文件或目錄;
-ipath<範本樣式>:此參數的效果和指定「-path」參數類似,但忽略字元大小寫的差別;
-iregex<範本樣式>:此參數的效果和指定「-regexe」參數類似,但忽略字元大小寫的差別;
-links<連接數目>:查找符合指定的硬連接數目的文件或目錄;
-iname<範本樣式>:指定字元串作為尋找符號連接的範本樣式;
-ls:假設find指令的回傳值為ture,就將文件或目錄名稱列出到標准輸出;
-maxdepth<目錄層級>:設置最大目錄層級;
-mindepth<目錄層級>:設置最小目錄層級;
-mmin<分鍾>:查找在指定時間曾被更改過的文件或目錄,單位以分鍾計算;
-mount:此參數的效果和指定「-xdev」相同;
-mtime<24小時數>:查找在指定時間曾被更改過的文件或目錄,單位以24小時計算;
-name<範本樣式>:指定字元串作為尋找文件或目錄的範本樣式;
-newer<參考文件或目錄>:查找其更改時間較指定文件或目錄的更改時間更接近現在的文件或目錄;
-nogroup:找出不屬於本地主機群組識別碼的文件或目錄;
-noleaf:不去考慮目錄至少需擁有兩個硬連接存在;
-nouser:找出不屬於本地主機用戶識別碼的文件或目錄;
-ok<執行指令>:此參數的效果和指定「-exec」類似,但在執行指令之前會先詢問用戶,若回答「y」或「y」,則放棄執行命令;
-path<範本樣式>:指定字元串作為尋找目錄的範本樣式;
-perm<許可權數值>:查找符合指定的許可權數值的文件或目錄;
-print:假設find指令的回傳值為ture,就將文件或目錄名稱列出到標准輸出。格式為每列一個名稱,每個名稱前皆有「./」字元串;
-print0:假設find指令的回傳值為ture,就將文件或目錄名稱列出到標准輸出。格式為全部的名稱皆在同一行;
-printf<輸出格式>:假設find指令的回傳值為ture,就將文件或目錄名稱列出到標准輸出。格式可以自行指定;
-prune:不尋找字元串作為尋找文件或目錄的範本樣式;
-regex<範本樣式>:指定字元串作為尋找文件或目錄的範本樣式;
-size<文件大小>:查找符合指定的文件大小的文件;
-true:將find指令的回傳值皆設為true;
-typ<文件類型>:只尋找符合指定的文件類型的文件;
-uid<用戶識別碼>:查找符合指定的用戶識別碼的文件或目錄;
-used<日數>:查找文件或目錄被更改之後在指定時間曾被存取過的文件或目錄,單位以日計算;
-user<擁有者名稱>:查找符和指定的擁有者名稱的文件或目錄;
-version或——version:顯示版本信息;
-xdev:將范圍局限在先行的文件系統中;
-xtype<文件類型>:此參數的效果和指定「-type」參數類似,差別在於它針對符號連接檢查。
參數
起始目錄:查找文件的起始目錄。
示例:
根據文件類型進行搜索
find
.
-type
類型參數
類型參數列表:
f
普通文件
l
符號連接
d
目錄
c
字元設備
b
塊設備
s
套接字
p
fifo