導航:首頁 > 操作系統 > linuxc文件查找

linuxc文件查找

發布時間:2022-08-27 15:32:45

① 用C語言實現linux下文件模糊查找,比如在home下,找出所有的JPEG文件

朋友,我來告訴你答案!sudofind/home-name'.jpeg'home目錄需要root許可權

② 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源代碼找到了函數定義的頭文件那麼相應的。c文件去哪裡找

頭文件並不一定要與.c文件一一對應。一個頭文件里的不同函數可以在不同.c文件中定義。
編譯器不是直接從.c文件中找的。編譯器先將.c文件編譯成.o文件,然後當某個.o文件中調用了某個函數而它自身又沒有這個函數時,它就會先把這個沒有出現的函數記下來,然後到後面鏈接的.o文件或者.a或者.so文件中找。如果仍然沒有找到,編譯器就會提示鏈接錯誤。

④ linux怎麼用命令尋找文件夾

可以用find命令

  1. 基本用法:
    find / -name 文件名 如:find ver1.d ver2.d -name '*.c' -print 查找ver1.d,ver2.d *.c文件並列印

2. 無錯誤查找:
find / -name access_log 2 >/dev/null
3. 按尺寸查找:
find / -size 1500c (查找1,500位元組大小的文件,c表示位元組)
find / -size +1500c (查找大於1,500位元組大小的文件,+表示大於)
find / -size +1500c (查找小於1,500位元組大小的文件,-表示小於)
4. 按時間:
find / -amin n 最後n分鍾
find / -atime n 最後n天
find / -cmin n 最後n分鍾改變狀態
find / -ctime n 最後n天改變狀態
5. 其它:
find / -empty 空白文件、空白文件夾、沒有子目錄的文件夾
find / -false 查找系統中總是錯誤的文件
find / -fstype type 找存在於指定文件系統的文件,如type為ext2
find / -gid n 組id為n的文件
find / -group gname 組名為gname的文件
find / -depth n 在某層指定目錄中優先查找文件內容
find / -maxdepth levels 在某個層次目錄中按遞減方式查找
6. 邏輯
-and 條件與 -or 條件或
7. 查找字元串
find . -name '*.html' -exec grep 'mailto:'{}

⑤ linux find命令怎麼用

你可以在超級用戶狀態 # 下,使用 find 命令查找指定的文件,舉例如下:
#find / -name "*.c" -print <cr>
其中:/ 代表從根目錄開始進行查找;"*.c" 代表要進行查找的文件類型為 C 語言源程序(*.c),-print 選項代表將查找到的結果輸出到屏幕上。
該命令是最、最、最實用的文件查找命令,別的就可以舉一反三了。例如:你如果想從 /usr 目錄開始進行查找,那麼就將 / 更改成:/usr 即可。

⑥ linux c 查看當前目錄下是否有指定文件

1. Shell 版本
#獲取當前腳本所在絕對路徑
cur_dir=$(cd "$(dirname "$0")"; pwd)

2. C語言版本
方法一、用realpath函數。這種方法用於開機啟動程序獲取自身目錄會出錯
char current_absolute_path[MAX_SIZE];
//獲取當前目錄絕對路徑
if (NULL == realpath("./", current_absolute_path))
{
printf("***Error***\n");
exit(-1);
}
strcat(current_absolute_path, "/");
printf("current absolute path:%s\n", current_absolute_path);
方法二、用getcwd函數。這種方法用於開機啟動程序獲取自身目錄會出錯
char current_absolute_path[MAX_SIZE];
//獲取當前目錄絕對路徑
if (NULL == getcwd(current_absolute_path, MAX_SIZE))
{
printf("***Error***\n");
exit(-1);
}
printf("current absolute path:%s\n", current_absolute_path);

方法三、用readlink函數。這種方法最可靠,可用於開機啟動程序獲取自身目錄
char current_absolute_path[MAX_SIZE];
//獲取當前程序絕對路徑
int cnt = readlink("/proc/self/exe", current_absolute_path, MAX_SIZE);
if (cnt < 0 || cnt >= MAX_SIZE)
{
printf("***Error***\n");
exit(-1);
}
//獲取當前目錄絕對路徑,即去掉程序名
int i;
for (i = cnt; i >=0; --i)
{
if (current_absolute_path[i] == '/')
{
current_absolute_path[i+1] = '\0';
break;
}
}
printf("current absolute path:%s\n", current_absolute_path);

⑦ linux命令:瀏覽當前目錄下的所有以「.c」為後綴名的文件是什麼

Linux中瀏覽當前目錄下所有以".c"為後綴名的文件,可以使用ls命令,直接執行如下命令:

ls*.c

⑧ LINUX下C語言實現文件名檢索

首先
DIR
*opendir(const
char
*filename);
struct
dirent
*readdir(DIR
*dirp);
利用這兩個函數獲取你目錄下
while(
(psDirent=readdir(pdir))
!=
NULL
)
{
//readdir返回的是目錄下的名稱,然後判斷一下當前這個名字是子目錄還是文件
struct
stat
st;
stat(
pcFileName,
&st
);
if(
S_ISDIR(st.st_mode)
)
continue;//是目錄繼續循環
else
filecount++;//是文件就加1
}
從循環出來後創建文件名為file(filecount+1)的文件。
這個只是簡單思路。最後別忘closedir。因為你的需求里,並未涉及文件創建個數的上限以及如果刪掉某個文件後的需求。
通常,如果你目錄下文件個數固定似乎更好辦一些。

⑨ Linux C語言 在文件中查找字元串匹配關鍵字

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define FILE_NAME_MAX 50
#define SEPERATE_STRING_MAX 100

int StrCount(FILE *file,char *str);

int main()
{
char *filename,*spestr;
FILE *fp;
filename=(char *)malloc(FILE_NAME_MAX);
spestr=(char *)malloc(SEPERATE_STRING_MAX);
printf("Input the filename:");
while(1)
{
scanf("%s",filename);
fp=fopen(filename,"r");
if(fp!=NULL)
{
break;
}
printf("Can't open the file.Try Again!");
}
printf("Input the special string:");
scanf("%s",spestr);

printf("%d times of %s in %s.",StrCount(fp,spestr),spestr,filename);

fclose(fp);
free(filename);
free(filename);

return 0;
}

int StrCount(FILE *file,char *str)
{
int count=0;
char ch;
int p=0;;

while((ch=fgetc(file))!=EOF)
{
// 當前讀入的字元匹配 str 相應位置的字元
if(ch == str[p])
{
// 匹配下一個字元
p++;
// 如果已經匹配成功
if(str[p] == '\0')
{
count++;
// 從頭開始重新匹配
p = 0;
}
}
// // 當前讀入的字元不匹配 str 相應位置的字元
else
{

⑩ linux下,C語言頭文件在哪

一、 C標准庫頭文件,以及Linux的標准庫文件的對應頭文件,默認放在/usr/include下。 如圖:

標識出了最常用的幾個頭文件。

二、 自定義頭文件,或者集成頭文件,需要在編譯的時候指定。可以在命令行中指定,也可以在makefile中指定。

指定自定義頭文件路徑方式為:

-IPATH1 -IPATH2...

如當前目錄下的inc文件夾,指定為頭文件, 那麼在編譯a.c時,可以命令寫作:

gcc a.c -I./inc -o a.out

閱讀全文

與linuxc文件查找相關的資料

熱點內容
編譯影片時軟體渲染錯誤 瀏覽:621
流星蝴蝶劍解壓失敗 瀏覽:292
如何確認方舟編譯器 瀏覽:664
奶粉源箱源碼什麼意思 瀏覽:178
台州程序員兼職一般去哪些網站 瀏覽:388
舊版本怎麼下載到新的安卓 瀏覽:966
flash個人網站源碼下載 瀏覽:723
javasocketbyte 瀏覽:264
素描基礎教程pdf 瀏覽:541
香港商報pdf版 瀏覽:427
安卓手機怎麼錄制吉他彈奏 瀏覽:382
ie文件夾緩存在哪裡 瀏覽:265
圍棋排名演算法 瀏覽:963
zigbee加密演算法 瀏覽:464
柏楊版資治通鑒pdf 瀏覽:395
事業編程序員下班時間 瀏覽:10
linux中命令大全 瀏覽:40
pic單片機學習網站 瀏覽:165
843除6的演算法 瀏覽:378
arduino編程視頻 瀏覽:746