知道檔案的權限之後,我們就可以開始來嘗試建立一些自己的檔案囉!
其中一種作法,相信各位還記得,就是 Day 12:撰寫檔案,談 nano、vim 所介紹的 nano
或 vim
存檔之後所儲存的檔案。
不過,有時候我們會希望可以複製既有的檔案,這下該怎麼辦呢?
在一般的視窗界面來說,通常我們會滑鼠右鍵,然後點選「複製」,來建立檔案的副本。
在 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 ..
這樣,我們就成功的移除檔案了!
今天對檔案操作的指令就先分享到這邊,我們明天見!