iT邦幫忙

2022 iThome 鐵人賽

DAY 14
1
Software Development

林姓商人與指令操作的秘密—談 Linux command line interface系列 第 14

Day 14:對檔案的進一步操作:cp、mkdir、mv、rm

  • 分享至 

  • xImage
  •  

知道檔案的權限之後,我們就可以開始來嘗試建立一些自己的檔案囉!

其中一種作法,相信各位還記得,就是 Day 12:撰寫檔案,談 nano、vim 所介紹的 nanovim 存檔之後所儲存的檔案。

不過,有時候我們會希望可以複製既有的檔案,這下該怎麼辦呢?

在一般的視窗界面來說,通常我們會滑鼠右鍵,然後點選「複製」,來建立檔案的副本。

在 linux 裡面,我們可以使用 cp 這個指令

NAME
       cp - copy files and directories

我們試著複製 aaa.txt 看看

cp aaa.txt aaa1.txt
ls -al

-r---w---x  1 ec2-user ec2-user     5 Sep 14 12:19 aaa1.txt
-r---w---x  1 ec2-user ec2-user     5 Sep 12 15:38 aaa.txt

可以看到,我們成功地複製了 aaa.txt

不過,如果我們嘗試用這個指令複製 /home/ec2-user/ 的話,會發生以下的錯誤

cp -r ec2-user/ ec2-user1
cp: cannot create directory ‘ec2-user1’: Permission denied

這是因為,對資料夾來說,嘗試在資料夾裡面建立檔案或資料夾,等同於對這個資料夾進行「寫入」的動作,所以會需要對該資料夾寫入的權限。

剛剛我們嘗試去複製 /home/ec2-user/ 的話,我們會需要寫入 /home/ 的權限,而這對於身份為 ec2-user 的我們來說,是不夠的。

所以我們要練習複製資料夾的話,要在 /home/ec2-user/ 裡面先用 mkdir 建立資料夾

cd /home/ec2-user/
mkdir test/

然後對 test/ 進行複製

cp -r test/ test1/
ls -al

drwxrwxr-x  2 ec2-user ec2-user     6 Sep 14 12:23 test
drwxrwxr-x  2 ec2-user ec2-user     6 Sep 14 12:22 test1

可以看到,我們成功的複製出一個資料夾了!

順帶一提,如果我們嘗試用 vim 打開資料夾的話

會看到以下內容

vim test/
" ============================================================================
" Netrw Directory Listing                                        (netrw v156)
"   /home/ec2-user/test
"   Sorted by      name
"   Sort sequence: [\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,\~\=\*$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$
"   Quick Help: <F1>:help  -:go up dir  D:delete  R:rename  s:sort-by  x:special
" ==============================================================================
../                                                                                                                                 
./

如果要移動檔案的話,可以使用 mv 這個指令

NAME
       mv - move (rename) files

我們試著把 aaa.txt 搬到 test/  裡面

mv aaa.txt test/aaa.txt
cd test
ls -al
-r---w---x 1 ec2-user ec2-user   5 Sep 12 15:38 aaa.txt

如果要移除檔案的話,我們可以使用 rm 這個指令

NAME
       rm - remove files or directories

我們試著移除 test/aaa.txt

cd test/
rm aaa.txt
rm: remove write-protected regular file ‘aaa.txt’?y
ls -al

drwxrwxr-x 2 ec2-user ec2-user   6 Sep 14 12:35 .
drwx------ 8 ec2-user ec2-user 200 Sep 14 12:32 ..

這樣,我們就成功的移除檔案了!

今天對檔案操作的指令就先分享到這邊,我們明天見!


上一篇
Day 13:權限的神秘數字 777:談權限的設置方式
下一篇
Day 15:指令的秘密解讀:echo
系列文
林姓商人與指令操作的秘密—談 Linux command line interface30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言