shell script獲取文件名或者目錄名稱的方法
引言
個別時候需要將當前文件(文件自己)拷貝到一個固定的目錄(項目組都熟悉的目錄)下面,可以使用 shell 腳本來實現(xiàn)此功能,比較簡單。
可以首先通過兩個小的例子來了解下面兩個命令:
basename
命令描述:打印 NAME 并刪除任何前導目錄組件。 如果指定,還刪除尾隨 SUFFIX
還是通過例子來看看會更加清晰一些:
[root@localhost ~]# basename /usr/bin/sort sort [root@localhost ~]# basename -s .h include/stdio.h stdio
dirname
命令描述:輸出每個 NAME 并刪除其最后一個非斜杠組件并刪除尾部斜杠; 如果 NAME 不包含 /,則輸出 ‘.’ (表示當前目錄)。
還是通過例子來看看會更加清晰一些:
[root@localhost ~]# dirname /usr/include/stdio.h /usr/include [root@localhost ~]# cd /usr/include/ [root@localhost include]# dirname /usr/include/stdio.h /usr/include [root@localhost include]# dirname stdio.h .
注意對比最后兩個結(jié)果的差異。
shell script
舉例子:編寫shell script 將文件拷貝到指定文件夾(存儲起來)。
知道前面兩個命令的作用和實例后,實現(xiàn)該功能就很簡單了。
直接上腳本:
#!/bin/sh
#copy myslef to /localdisk
##################################
# main funtion define
##################################
main()
{
? ? local param=0
?? ?local TAR_DIR="/localdisk"
? ? local dir=`ls / | grep ${TAR_DIR}`
? ? if [ -z "$dir" ]; then
? ? ? ? local progName=`basename $0`
? ? ? ? mkdir -p ${TAR_DIR}
? ? ? ? mv $progName ${TAR_DIR}
? ? fi
? ? return $param
}
main $@了解更多
可以通過下面命令了解更多關(guān)于 basename 和 dirname 的用法。
man basename man dirname
到此這篇關(guān)于shell script獲取文件名或者是目錄名稱的方法的文章就介紹到這了,更多相關(guān)shell script獲取文件名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux bash中too many arguments問題的解決方法
本文介紹下在linux bash shell中出現(xiàn)too many arguments問題的解決辦法,有需要的朋友參考學習下2013-11-11
linux shell 根據(jù)進程名獲取pid的實現(xiàn)方法
這篇文章主要介紹了linux shell 根據(jù)進程名獲取pid的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-05-05

