linux文件和目錄的刪除、新建、移動等操作


在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腳本中的運用

Bash代碼   收藏代碼
  1. #!/bin/sh  
  2.   
  3. # 跳轉到腳本所在目錄  
  4. cd $(dirname "$0") || exit 1  
  5.   
  6. # 剩下的部分  

 

這個寫法我經常用到,因為有時候腳本執行時無法確定是在哪個目錄,比如腳本用在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 ~]#

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM