一、 shell查找文件命令
使用find命令可以在指定的目錄及其子目錄下查找文件,命令格式如下:
find [路徑] [選項] [表達式]
其中路徑是指要查找的目錄,選項是find命令的參數,用於指定查找的類型或其他參數,表達式是指要查找的文件名或其他條件。
例如,要在當前目錄(包括子目錄)下查找所有以「.txt」為後綴名的文件,可以使用以下命令:
find . -name "*.txt"
其中「.」表示當前目錄,「-name」是選項,後面跟的是要查找的文件名模式。「*」是通配符,表示任意字元。
二、 shell查看文件是否存在
使用test命令可以測試文件是否存在。test命令有很多選項,其中「-e」表示測試文件是否存在,命令格式如下:
test -e [文件路徑]
返回值為0表示文件存在,否則表示文件不存在。可以使用下面的語句在腳本中測試文件是否存在:
if test -e 文件路徑; then
echo "文件存在"
else
echo "文件不存在"
fi
三、 shell查找文件中內容
使用grep命令可以在文件中查找指定的內容,並將包含該內容的行輸出到屏幕上。命令格式如下:
grep [選項] "要查找的內容" 文件路徑
其中選項可以指定搜索選項,如大小寫敏感、查找整詞等。例如,下面的命令可以在文件file.txt中查找「hello」單詞:
grep -w "hello" file.txt
如果要查找多個文件中的內容,可以使用「*」通配符,例如:
grep "hello" /path/to/directory/*
四、 shell查找文件匹配的行數
使用grep命令還可以統計文件中包含某個字元串的行數。可以使用「-c」選項實現,命令格式如下:
grep -c "要查找的內容" 文件路徑
如果要查找多個文件的匹配行數,可以使用以下命令:
grep -c "要查找的內容" /path/to/directory/*
五、 shell查找文件夾命令
使用ls命令可以列出當前目錄下的所有子目錄。命令格式如下:
ls -d */
其中「-d」選項表示列出目錄本身,而不是下面的文件。後面的「*/」表示只列出目錄,不包括文件。
六、 shell查找文件所在目錄
使用dirname命令可以查找給定文件所在的目錄路徑。命令格式如下:
dirname 文件路徑
例如,要查找文件「/home/user/Documents/file.txt」所在的目錄,可以使用以下命令:
dirname /home/user/Documents/file.txt
七、 shell查找文件名
使用basename命令可以查找給定路徑中的文件名部分。命令格式如下:
basename 文件路徑
例如,要查找文件「/home/user/Documents/file.txt」的文件名部分,「.txt」不包含在內,可以使用以下命令:
basename /home/user/Documents/file.txt .txt
八、 shell查找文件夾
使用find命令可以查找指定目錄下的所有文件夾。命令格式如下:
find [目錄] -type d
其中「-type d」選項表示只查找目錄。例如,要在當前目錄下查找所有子目錄,可以使用以下命令:
find . -type d
九、 shell查找文件父目錄
使用cd命令可以進入一個目錄,然後使用「..」表示上級目錄。例如,要查找目錄「/home/user/Documents」所在的父目錄,可以使用以下命令:
cd /home/user/Documents/..
pwd
其中「pwd」命令可以顯示當前目錄的路徑。
十、 shell查找文件並存入數組
使用find命令可以將查找到的文件存入一個數組中。可以使用以下語句實現:
arr=($(find [路徑] [選項] [表達式]))
例如,要將當前目錄下以「.txt」為後綴名的文件存入一個數組中,可以使用以下語句:
arr=($(find . -name "*.txt"))
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/247982.html