Linux基礎命令---find

来源:https://www.cnblogs.com/wj78080458/archive/2018/11/17/9972792.html
-Advertisement-
Play Games

find 在指定的目錄下查找文件,並可對找到的文件執行指定的操作。Find指定會從指定的目錄向下遞歸搜索各個子目錄。GNUf ind根據優先順序規則從左到右計算給定表達式,從而搜索根植於每個給定文件名的目錄樹,直到找到結果,此時find移到下一個文件名。如果在安全很重要的環境中使用find(例如,如果 ...


find

      在指定的目錄下查找文件,並可對找到的文件執行指定的操作。Find指定會從指定的目錄向下遞歸搜索各個子目錄。GNUf ind根據優先順序規則從左到右計算給定表達式,從而搜索根植於每個給定文件名的目錄樹,直到找到結果,此時find移到下一個文件名。如果在安全很重要的環境中使用find(例如,如果您使用它搜索其他用戶可寫的目錄),則應閱讀findutils文檔中的“Security Considerations”一章。

     此命令的適用範圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

 

1、語法

     find [-H]  [-L]  [-P]  [-D debugopts]  [-Olevel]  [path...]  [expression]

 

2、選項列表

選項

說明

-version | --version

顯示命令版本信息

-help | --help

顯示幫助文檔

-P

找到符號鏈接的時候,所有的屬性都來自符號鏈接。這是預設選項

-L

找到符號鏈接的時候,所有的屬性來自文件本身,而不是符號鏈接

-H

找到符號鏈接的時候,所有的屬性都來自符號鏈接。

-Ddebugoptions

列印診斷信息;這可能有助於診斷問題,為什麼查找不做您想做的事情。調試選項列表應以逗號分隔。可以有一下選項:

help,解釋調試選項

tree,以其原始和優化的形式顯示表達式樹

stat,使用stat和lstat系統調用檢查作為文件的列印消息。find程式試圖將此類調用最小化。

opt,列印有關表達式樹優化的診斷信息;請參見-O選項。

rates,列印一個摘要,指示每個謂詞成功或失敗的頻率。

-Olevel

啟用查詢優化。Find程式重新排序測試以加快執行速度,同時保持總體效果;也就是說,具有副作用的謂詞不會相對於其他謂詞重新排序。在每個優化級別上執行的優化如下:

0,相當於優化級別1

1,這是預設的優化級別,與傳統行為相對應。表達式被重新排序,以便首先執行僅基於文件名(例如-name和-regex)的測試。

2,任何-type或-xtype的測試都是在只基於文件名的任何測試之後,而是在需要inode提供信息的任何測試之前執行的。在許多Unix的現代版本上,readdir()返迴文件類型,因此這些謂詞比需要先統計文件的謂詞計算速度更快

3,在此優化級別上,啟用了完全基於成本的查詢優化器。對測試順序進行了修改,以便首先執行廉價(即快速)測試,併在必要時執行更昂貴的測試。在每個成本範圍內,謂詞將根據它們是否可能成功而更早或更晚地進行評估。對於-o,有可能成功的謂詞會更早地進行評估,而對於-a,可能會失敗的謂詞將更早地進行評估。

 

3、說明

     -H,-L和-P選項控制符號鏈接的處,。後面的命令行參數被視為要檢查的文件或目錄的名稱,直到以‘-’或‘(’或‘!’開頭的第一個參數為止。該參數和隨後的任何參數都被視為描述要搜索的內容的表達式。如果沒有提供路徑,則使用當前目錄。如果沒有給出表達式,則使用表達式“-print”。

     這些選項控制find的行為,但在上一個路徑名之後立即指定。五個“實”選項-H,-L,-P,-D和-O必須出現在第一個路徑名之前,如果有的話。“--”也可以用來表示任何剩餘的參數都不是選項(但如果在起始點列表中使用通配符,則確保所有起始點都以“./”或“/”開頭通常更安全)。

     如果指定了-H、-L和-P中的一個,最後一個出現在命令行上的操作將生效。由於-P選項是預設的,因此,除非指定了-H或-L,否則-P選項應視為有效。在命令行本身的處理過程中,在搜索開始之前,GNU經常查找stats文件。當-H或-L選項生效時,列出的任何作為-newer參數的符號鏈接將被取消引用,並且時間戳將從符號鏈接指向的文件中提取。同樣的考慮也適用於-newerxy,-anewer和-cnewer。

 

4、表達式

     表達式由OPTION(這些選項影響整體操作而不是處理特定文件,並且始終返回true)、TEST(返回真或假值)和ACTION(有副作用並返回真或假值)組成,所有這些選項都由操作符‘-’分隔。如果表達式不包含“-prune”以外的操作,則對錶達式為true的所有文件執行“-print”。

     1)OPTION

     所有選項總是返回true。除了-daystart、-follow和-regextype之外,這些選項會影響所有測試,包括在選項之前指定的測試。這是因為這些選項是在分析命令行時處理的,而測試在檢查文件之前不會執行任何操作。在這方面,-daystart、-follow和-regextype選項是不同的,並且只對稍後出現在命令行中的測試有影響。因此,為了清晰起見,最好將它們放在表達式的開頭。如果不這樣做,就會發出警告。

選項

說明

-d

depth的同義詞,與FreeBSD、NetBSD、MacOSX和OpenBSD相容.

-daystart

測量時間(用於-amin,-atime,-cmin,-ctime,-mmin和-mtime)從今天開始,而不是從24小時前開始。此選項僅影響稍後出現在命令行中的測試。

-depth

在目錄本身之前處理每個目錄的內容。

-follow

使用-L選項代替。解除引用符號鏈接。“follow”選項隻影響在命令行中出現的測試。

-help | --help

列印出幫助信息,並且退出

-ignore_readdir_race

通常情況下,Find將在無法統計文件時發出錯誤消息。如果您提供了此選項,並且在find從目錄中讀取文件的名稱和它試圖統計該文件的時間之間刪除了一個文件,則不會發出錯誤消息。這也適用於命令行中給出其名稱的文件或目錄。此選項在讀取命令行時生效,這意味著您不能在打開此選項的情況下搜索文件系統的一個部分,併在關閉該選項時搜索其中的一部分(如果需要這樣做,則需要發出兩個find命令,一個帶有該選項,另一個沒有)。

-maxdepth levels

查找的最大深度,“-maxdepth 0”只對命令行出現的TEST和ACTION有效

-mindepth levels

不要在低於levels的級別上應用任何測試或操作,“-maxdepth 1”意味著處理除命令行參數以外的所有文件。

-mount

不要將目錄降到其他文件系統上。-xdev的替代名稱,用於與find的其他版本相容。

-noignore_readdir_race

關閉-ignore_readdir_race.

-noleaf

不要通過假設目錄包含的子目錄比硬鏈接數少兩個來進行優化。在搜索不遵循Unix目錄鏈接約定的文件系統(如CD-ROM或MS-DOS文件系統或AFS捲掛載點)時,需要此選項。普通Unix文件系統上的每個目錄至少有兩個硬鏈接:name和“.”。此外,它的子目錄(如果有的話)都有一個“.”鏈接到該目錄的條目。當find檢查一個目錄時,在它聲明瞭比目錄的鏈接數少兩個子目錄之後,它知道目錄中的其餘條目是非目錄的(目錄樹中的“leaf”文件)。如果只需要檢查文件的名稱,就不需要對它們進行統計;這就大大提高了搜索速度。

-regextype type

更改命令行後面發生的-regex和-iregex測試所理解的正則表達式語法。

-version, --version

列印find命令的版本信息,並且退出

-warn, -nowarn

關閉或者打開警告信息

-xautofs

不要降低autofs文件系統上的目錄

-xdev

不要降低其他文件系統上的目錄

     2)TEST

     有些測試,例如newerXY和-samefile,允許比較當前正在檢查的文件和命令行上指定的引用文件。當使用這些測試時,引用文件的解釋由選項H、-L和-P以及前面的任何選項決定,但是在解析命令行時,只檢查一次引用文件。如果無法檢查引用文件(例如,stat(2)系統調用失敗),則會發出錯誤消息,並查以非0狀態退出。

選項

說明

+n

大於n

-n

小於n

n

n

-amin m

查找m分鐘之前被訪問過的文件

-anewer file

最近被訪問的文件,而不是最近被修改的文件

-atime m

最近m天前被訪問的文件

-cmin m

查找m分鐘之前被修改過文件狀態的文件

-cnewer file

最近被未改過文件狀態的文件,而不是最近被修改的文件

-ctime m

最近m天前被修改文件狀態的文件

-mmin m

查找最近m分鐘前被修改過內容的文件

-mtime m

查找最近m天前被修改過內容的文件

-empty

查找大小為0的目錄和文件

-executable

查找可以被執行的文件,或者可以被搜索的目錄

-fstype type

查找在指定文件系統上的文件

-gid id

查找屬於指定組id的文件

-group name

查找屬於指定組的文件

-ilnamepattern

和“-lname”一樣,但匹配是不區分大小寫的。如果-L選項或-follow選項生效,則除非符號鏈接中斷,否則此測試返回false。

-iname pattern

和“-name”一樣,但匹配是不區分大小寫的

-inum n

文件inode編號n。通常情況下,使用-samefile測試更容易。

-ipath pattern

和“-iwholename”一樣,不建議使用

-iregex pattern

和“-regex”一樣,但是匹配不區分大小寫

-iwholenamepattern

和“-wholename”一樣,但是匹配不區分大小寫

-links n

有n個鏈接的文件

-lnamepattern

找找符合指定匹配模式的符號鏈接文件

-name pattern

文件名的基(刪除了前導目錄的路徑)與shell模式匹配。元字元(“*”、“?”和“[]”)與“.”匹配。

-newer file

比file更近修改的文件

-newerXYreference

將當前文件的時間戳與引用進行比較。引用參數通常是文件的名稱(其中一個時間戳用於比較),但也可能是描述絕對時間的字元串。X和Y是其他字母的占位符,這些字母選擇屬於如何使用引用進行比較的時間。

a,文件的訪問時間。

B,文件的產生時間

c,文件inode狀態改變的時間

m,文件的修改時間

t,引用被直接解釋為時間。

-nogroup

沒有組對應於文件的組ID

-nouser

沒有用戶對應於文件的用戶ID。

-path pattern

文件名與shell模式匹配。元字元不處理“/”或‘.’,例如“find  .  -path  ’./sr*sc‘”為名為“./src/misc”的目錄列印一個條目。若要忽略整個目錄樹,請使用-prune而不是檢查樹中的每個文件。例如,要跳過目錄“src/emacs”及其下的所有文件和目錄,並列印找到的其他文件的名稱,請執行如下操作“find  .  -path  ./src/emacs  -prune  -o  –print

-perm  –mode

為文件設置了所有許可權位模式。符號模式以這種形式被接受,這通常是想要使用它們的方式。如果使用符號模式,則必須指定“u”、“g”或“o”

-perm  /mode

為該文件設置任何許可權位模式。符號模式以這種形式被接受。如果使用符號模式,則必須指定“u”、“g”或“o”。有關一些說明性示例,請參見示例部分。如果沒有在模式中設置許可權位,此測試將匹配任何文件(這裡的想法是與-perm-000的行為一致)。

-perm+mode

不推薦使用這種模式集中任何許可權位搜索文件的舊方法。你應該改用“-perm /mode”。例如,‘+u+x’是一個有效的符號模式(等效於+u,+x,即0111)。

-size n[cwbkMG]

查找指定大小的文件。文件單位預設是塊,512位元組。有以下單位:

‘b’,521位元組的塊,預設

‘c’,bytes

‘w’,2個位元組

‘k’,1024位元組

‘M’,1048576位元組

‘G’,1073741824位元組

-type 類型

查找指定類型的文件。c,字元設備;d,目錄文件;p,有名管道;f,普通文件;l,符號鏈接;s,socket文件

-uid n

指定文件的uid

-used n

最後一次訪問文件是在最後一次更改狀態後的n天。

-user name

查找屬於指定用戶的文件

-wholenamepattern

等價於“-path”

-writable

匹配可寫的文件。

-xtype c

和“-type”相同,除非文件是符號鏈接。對於符號鏈接,-xtype檢查-type不檢查的文件的類型。

-contextpattern

文件的安全上下文與GLOB模式相匹配。

     3)ACTIONS

選項

說明

-delete

刪除文件;如果刪除成功,則為true。如果刪除失敗,則發出錯誤消息。如果“-delete”失敗,find的退出狀態將為非零

-execcommand

執行命令;如果返回0狀態,則為true。以下所有要查找的參數都被視為命令的參數,直到遇到由‘;’組成的參數為止。字元串“{}”被當前文件名替換,當前文件名在命令的參數中出現在任何地方,而不僅僅是在只有它的參數中,就像在find的某些版本中那樣。這兩個構造可能都需要轉義(用‘\’)或引用,以保護它們不受外殼的擴展。有關使用-exec選項的示例,請參閱示例部分。指定的命令對每個匹配的文件運行一次。該命令在啟動目錄中執行。在使用-exec操作時存在不可避免的安全問題;您應該使用-execdir選項。

-execcommand{} +

-exec操作的這個變體在選定的文件上運行指定的命令,但是命令行是通過在末尾追加每個選定的文件名來構建的;命令的調用總數將比匹配的文件數少得多。命令行的構建方式與xargs構建其命令行的方式大致相同。命令中只允許“{}”的一個實例。命令在起始目錄中執行。

-execdircommand;

-execdircommand{} +

類似-exec,但指定的命令是從包含匹配文件的子目錄運行的,該子目錄通常不是您開始查找的目錄。

-fls file

真,類似“-ls”,但是寫文件類似“-fprint”。輸出文件總是被創建,即使謂詞永遠不匹配。

-fprint file

真,將完整的文件名列印到文件中。如果運行find時文件不存在,則創建文件;如果文件存在,則截斷文件。文件名‘/dev/stdout’和‘/dev/stderr’是專門處理的;它們分別引用標準輸出和標準錯誤輸出。輸出文件總是被創建,即使謂詞永遠不匹配

-fprint0 file

真,類似“-print0”,但是寫文件類似“-fprint”。輸出文件總是被創建,即使謂詞永遠不匹配。

-fprintf file format

真,類似“-printf”但是寫到文件類似“-fprint”。輸出文件總是被創建,即使謂詞永遠不匹配。

-ls

真,在標準輸出上以“ls -dils”格式列出當前文件。塊計數為1K塊,除非設置了環境變數POSIXLY_TRIDER,在這種情況下使用了512位元組塊。

-ok command;

類似“-exec”,但是先問用戶。如果用戶同意,運行命令。否則只會返回FALSE。如果運行該命令,它的標準輸入將從/dev/null重定向。

-okdircommand;

類似“-execdir”,但是和“-ok”一樣先詢問用戶。如果用戶不同意,只需返回false。如果運行該命令,它的標準輸入將從/dev/null重定向。

-print

真,在標準輸出上列印完整的文件名,然後是換行符。

-print0

真,在標準輸出上列印完整的文件名,然後是空字元

-printf format

真,在標準輸出上列印格式,解釋‘\’轉義和‘%’指令。欄位寬度和精度可以用“printf  C“函數指定。請註意,許多欄位是以%s而不是%d的形式列印的。與-print不同,-printf不會在字元串末尾添加換行符。

-prune

如果該文件是一個目錄,則不要下降到它

-quit

馬上退出。不會繼續運行子進程,但不會處理命令行上指定的路徑。

     4)操作符,按優先次序排列

選項

說明

( expr )

強制優先

! expr

取反

-not expr

取反,但不適合POSIX

expr1 expr2

隱含的“與“操作

expr1 -a expr2

和“expr1 expr2“一樣

expr1 -and expr2

和“expr1 expr2“一樣,但是不適合POSIX

expr1 -o expr2

“或“操作

expr1 -or expr2

“或“操作,不適合POSIX

expr1 , expr2

始終對expr1和expr2進行計算。expr1的值被丟棄;列表的值是expr2的值。逗號運算符對於搜索幾種不同類型的東西很有用,但是只遍歷文件系統層次結構一次

 

5、環境變數

     LANG,為未設置或空的全局變數提供預設值。

     LC_ALL,如果設置為非空字元串值,則重寫所有其他全局變數的值。

     LC_COLLATE,POSIX標準指定此變數影響用於-name選項的模式匹配。對‘LC_COLLATE’的支持取決於系統庫。這個變數還會影響對“-ok“的響應的解釋;當‘LC_MESSAGES’變數選擇用於將響應解釋為”-ok“的實際模式時,模式中任何括弧表達式的解釋都會受到‘LC_COLLATE’的影響。

     LC_CTYPE,如果系統的fnmatch (3)庫函數支持該變數,則此變數將影響正則表達式中使用的字元類的處理以及名稱測試。此變數還會影響用於解釋“-ok“發出的提示的響應的正則表達式中任何字元類的解釋。當列印文件名時,‘LC_CTYPE’環境變數還將影響哪些字元被認為是不可列印的;

     LC_MESSAGES,確定要用於全局消息的區域設置。如果設置了‘POSIXLY_RETERT’環境變數,這還將確定對“-ok“操作所作提示的響應的解釋

     NLSPATH,確定全局信息目錄的位置。

     PATH,影響搜索以查找-exec、-execdir、-ok和-okdir調用的可執行文件的目錄。

     POSIXLY_CORRECT,確定-ls和-fls使用的塊大小。如果設置了POSIXLY_RIDERT,則塊是512位元組的單位。否則,它們是1024位元組的單位。

     TZ,影響用於-printf和-fprintf的一些與時間相關的格式指令的時區。

 

6、返回值

     如果成功,返回0;如果失敗,返回大於0的數。

 

7、例子程式

find  /tmp  -name  core  -type f -print | xargs  /bin/rm  -f

在/tmp目錄中或下麵查找名為core的文件並刪除它們。請註意,如果存在包含換行符、單引號或雙引號或空格的文件名,則此操作將不正確。

find  /tmp  -name  core  -type  f  -print0 | xargs  -0 /bin/rm  -f

在目錄/tmp中或下麵查找名為core的文件,並刪除它們,處理文件名,以便正確處理包含單引號或雙引號、空格或換行符的文件或目錄名稱。名稱測試出現在-type測試之前,以避免對每個文件調用stat(2)。

find  .  –type f  -exec  file '{}'  \;

對當前目錄中或當前目錄下的每個文件運行“file”。註意,大括弧被用單引號括起來,以保護它們不被解釋為shell腳本標點符號。分號同樣受到反斜杠的保護,儘管在這種情況下也可以使用單引號。

find  /  \( -perm -4000 -fprintf /root/suid.txt '%#m %u %p\n' \) ,  \( -size +100M -fprintf /root/big.txt '%-10s %p\n' \)

只遍歷文件系統一次,將setuid文件和目錄列出到/root/suid.txt,並將大型文件列出到/root/big.txt

find  $HOME -mtime 0

在您的主目錄中搜索在過去24小時內已經修改的文件。此命令的工作方式是這樣的,因為每個文件上次修改後的時間被除以24小時,其餘部分被丟棄。這意味著要匹配-mtime 0,文件必須在過去進行修改,而修改時間不到24小時前。

find  /sbin /usr/sbin  -executable  \!  -readable –print

搜索可執行但不可讀的文件

find  .  –perm  664

搜索所有者和組有讀寫許可權,但其他用戶可以讀取但不能寫入的文件。滿足這些條件但設置了其他許可權的文件(例如,如果有人可以執行該文件)將不匹配。

find  .  -perm  -664

搜索所有者和組有讀寫許可權的文件,以及其他用戶可以讀取的文件,而不考慮是否存在任何額外的許可權位(例如可執行位)。例如,這將匹配具有模式0777的文件。

find  .  –perm  /222

搜索可寫的文件

find  . -perm  /220

find  . –perm  /u+w,g+w

find  . -perm  /u=w,g=w

所有這三個命令都執行相同的操作,但是第一個命令使用文件模式的八進位表示,另外兩個命令使用符號形式。這些命令都搜索其所有者或組可寫的文件。文件不必由所有者和組同時寫入才能匹配,兩者都可以。

find  .  –perm  -220

find  .  -perm  -g+w,u+w

這兩個命令執行相同的操作;搜索它們的所有者和組都可以寫的文件。

find  .  -perm  -444  -perm /222  !  -perm /111

find  .  –perm  -a+r  -perm /a+w  !  -perm /a+x

這兩個命令都搜索每個人都可讀的文件(-perm -444或-perm -a+r),至少設置了一個寫入位集(-perm /222或-perm /a+w),但任何人都不能執行(!-perm /111和!-perm /a+x)。

cd  /source-dir

find  .  -name  .snapshot  -prune  -o  \( \! -name *~ -print0 \)|

cpio  -pmd0 /dest-dir

此命令將/source-dir的內容複製到/dest-dir,但省略了名為“.snapshot “的文件和目錄(以及其中的任何內容)。它還省略了名稱以~結尾的文件或目錄,而不是其內容。

find  repo/  -exec  test  -d {}/.svn  -o  -d {}/.git  -o  -d {}/CVS  ;  -print  –prune

給定以下項目目錄及其相關的SCM管理目錄,高效地搜索項目的根

     repo/project1/CVS

     repo/gnu/project2/.svn

     repo/gnu/project3/.svn

     repo/gnu/project3/src/.svn

     repo/project4/.git

 

8、實例演示

1)在根目錄下查找doc尾碼的文件 

[root@localhost test02]# find / -name *.doc

find: 探測到文件系統迴圈;“/var/named/chroot/var/named” 是與“/var/named” 相同的文件系統迴圈的一部分。

/usr/share/cvs/contrib/intro.doc

/usr/lib/python2.6/pdb.doc

/lib/kbd/keymaps/i386/qwerty/no-latin1.doc

2)將查找到的內容輸出到res.txt 

[root@localhost test02]# find / -name *.doc -fprint res.txt        //找到文件,輸出到res.txt

find: 探測到文件系統迴圈;“/var/named/chroot/var/named” 是與“/var/named” 相同的文件系統迴圈的一部分。

[root@localhost test02]# cat res.txt                  //查看輸出結果

/usr/share/cvs/contrib/intro.doc

/usr/lib/python2.6/pdb.doc

/lib/kbd/keymaps/i386/qwerty/no-latin1.doc

3)查找屬於指定用戶的文件 

[root@localhost test02]# find / -user david -perm 777      //查找屬於用戶david,並且權利是777的文件

find: 探測到文件系統迴圈;“/var/named/chroot/var/named”是與 “/var/named” 相同的文件系統迴圈的一部分。

/wj/._主頁logo魏傑it教育.jpg

find: “/proc/7990/task/7990/fd/5”: 沒有那個文件或目錄

find: “/proc/7990/task/7990/fdinfo/5”: 沒有那個文件或目錄

find: “/proc/7990/fd/5”: 沒有那個文件或目錄

find: “/proc/7990/fdinfo/5”: 沒有那個文件或目錄

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 問題:伺服器未提供有意義的回覆;這可能是由協定不匹配、會話過早關閉或內部伺服器錯誤引起的。 另類的解決辦法,如果實在沒有思路,不妨把代碼還原一下,然後把更改的內容在重新添加一遍,或許問題就解決了。 ...
  • 背景        最近需要將一些外部的 及其他 介面的調用移到一個獨立的 項目中,然後供其他 項目調用。之前的幾個 已經成功遷移,但是在遷移一個需要用戶名密碼認證的 介面的時候卻始終調用不成功。下麵直接上代碼。 示例代碼 在 中 ...
  • 很多時候我們做網站時單純的用bootstrap等前端框架實現的前端自適應帶給用戶的體驗並不太好,所以為了提高用戶體驗會專門針對PC端網頁重新設計一套移動端網頁,但是怎麼才能做到在移動端訪問PC頁面的時候返回對應的移動端頁面,而不是PC端頁面呢?下麵我們就簡單的進行介紹。主要技術是asp.net co ...
  • 在開發查看流程表單明細的時候,在Web界面中,我們往往通過使用@RenderPage實現頁面內容模塊化的隔離,減少複雜度,因此把一些常用的如審批、撤銷、會簽、閱辦等等的流程步驟都放到了通用處理的頁面ViewDetail.cshtml裡面實現了。那麼如果在一些特殊的表單處理過程中,我們在審批完成後需要... ...
  • 背景 在與後臺API介面對接時,如將網頁Url作為參數請求數據時,如果是錨點參數,則會丟失。 錨點參數 請求通過WebRequest.Create創建一個WebRequest: 得到的webRequest,發現後面的錨點參數沒有了。如下圖: 獲取的webRequest,Address和Request ...
  • 實現的功能以及效果如下: 樣式代碼: .divtable { display: table; border-collapse: collapse; border-spacing: 0; margin-right: auto; margin-left: auto; width: 100%; } .di ...
  • win10更新後出現System.ComponentModel.Win32Exception 我的環境是由於“sql server2012 無法連接到WMI提供程式”引起的 參考http://www.cnblogs.com/shixinchao/p/4230347.html解決的 命令語句:C:\U ...
  • 在上一篇博文《 "[UWP]使用Popup構建UWP Picker" 》中我們簡單講述了一下使用Popup構建適用於MVVM框架下的彈窗層組件Picker的過程。但是沒有應用實例的話可能體現不出Picker相對於ContentDialog的優點在哪裡,畢竟Linus大神說過: Talk is che ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...