在Linux下進行切換目錄 cd
在Linux下查看當前目錄下的內容 ls、 ll、 ls -al
如何顯示當前命令所在的目錄路徑 pwd
在Linux下創建目錄 mkdir
在Linux下創建文件 直接vim 編輯好之后:wq回車就可以了
在Linux下刪除目錄或文件 rm -rf
在Linux下復制目錄或文件 復制文件 cp 原路徑 新路徑以及新名 復制文件夾 cp -r 原文件夾 新文件夾
在Linux下移動目錄或文件 mv /home/1.txt /opt/ 文件夾也是一樣的做法
通過basename獲取路徑中的文件名
用途說明
basename命令用於去掉文件名的目錄和后綴(strip directory and suffix from filenames),對應的dirname命令用於截取目錄
常用參數
格式:basename NAME
去掉NAME中的目錄部分。
path dirname basename "/usr/lib" "/usr" "lib" "/usr/" "/" "usr" "usr" "." "usr" "/" "/" "/" "." "." "." ".." "." ".."
格式:basename NAME SUFFIX
去掉NAME中的目錄部分和后綴SUFFIX,如果沒有了,則輸出SUFFIX。
使用示例
示例一
[root@web ~]# basename /usr/bin/sort
sort
[root@web ~]# dirname /usr/bin/sort
/usr/bin
[root@web ~]#
示例二
[root@web ~]# basename /usr/include/stdio.h .h
stdio
[root@web ~]# basename /usr/include/stdio.h stdio.h
stdio.h
通過dirname獲取路徑中的目錄名
用途說明
dirname命令可以取給定路徑的目錄部分(strip non-directory suffix from file name)。這個命令很少直接在shell命令行中使用,我一般把它用在shell腳本中,用於取得腳本文件所在目錄,然后將當前目錄切換過去。根據手冊頁上說的“Print NAME with its trailing /component removed; if NAME contains no /’s, output ‘.’ (meaning the current directory).”,似乎說“取給定路徑的目錄部分” 並不能很准確的概括dirname命令的用途。Linux下還有一個命令是basename,它與dirname相反,是取得文件名稱部分。
常用參數
無。
使用示例
示例一 來自手冊頁的例子
[root@qzt196 ~]# dirname /usr/bin/sort
/usr/bin
[root@qzt196 ~]# dirname stdio.h
.
[root@qzt196 ~]#
示例二
[root@qzt196 ~]# dirname /usr/bin
/usr
[root@qzt196 ~]# dirname /usr/bin/
/usr
注意:此處的輸出結果,似乎有點怪。這應該看下dirname命令的源代碼才能解釋了。
示例三 在bash腳本中的運用
- #!/bin/sh
- # 跳轉到腳本所在目錄
- cd $(dirname "$0") || exit 1
- # 剩下的部分
這個寫法我經常用到,因為有時候腳本執行時無法確定是在哪個目錄,比如腳本用在crontab中時。
另一個寫法是:cd `dirname $0` 其中反引號··等同於$()。
示例四 與另外一種截取目錄的方法的比較
可以用${pathname%/*}截取掉pathname后面的文件部分。
[root@jfht ~]# pathname=/usr/bin/sort; echo $(dirname $pathname) ${pathname%/*}
/usr/bin /usr/bin
[root@jfht ~]# pathname=/usr/bin/; echo $(dirname $pathname) ${pathname%/*}
/usr /usr/bin
[root@jfht ~]# pathname=/usr/bin; echo $(dirname $pathname) ${pathname%/*}
/usr /usr
[root@jfht ~]# pathname=/usr/; echo $(dirname $pathname) ${pathname%/*}
/ /usr
[root@jfht ~]# pathname=/usr; echo $(dirname $pathname) ${pathname%/*}
/
[root@jfht ~]# pathname=/; echo $(dirname $pathname) ${pathname%/*}
/
[root@jfht ~]# pathname=stdio.h; echo $(dirname $pathname) ${pathname%/*}
. stdio.h
[root@jfht ~]#