<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 練習 4:Bash:處理文件,`pwd`,`ls`,`cp`,`mv`,`rm`,`touch` > 原文:[Exercise 4. Bash: working with files, pwd, ls, cp, mv, rm, touch](https://archive.fo/xb8YB) > 譯者:[飛龍](https://github.com/wizardforcel) > 協議:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/) > 自豪地采用[谷歌翻譯](https://translate.google.cn/) 在 Linux 中,一切都是文件。但是什么是文件?現在完全可以說,它是一個包含一些信息的對象。它通常[定義](http://en.wikipedia.org/wiki/Computer_file)如下: > 計算機文件是用于存儲信息的,任意的信息塊或資源。它可用于計算機程序,并且通常基于某種持久的存儲器。文件是持久的,因為它在當前程序完成后,仍然可用于其它程序。計算機文件可以認為是紙質文檔的現代對應物,它們通常保存于辦公室和圖書館的文件中,這是該術語的來源。 但這個定義太籠統了,所以讓我們更具體一些。`man stat`告訴我們,文件是一個對象,它包含以下屬性: ```c struct stat { dev_t st_dev; /* ID of device containing file */ ino_t st_ino; /* inode number */ mode_t st_mode; /* protection */ nlink_t st_nlink; /* number of hard links */ uid_t st_uid; /* user ID of owner */ gid_t st_gid; /* group ID of owner */ dev_t st_rdev; /* device ID (if special file) */ off_t st_size; /* total size, in bytes */ blksize_t st_blksize; /* blocksize for file system I/O */ blkcnt_t st_blocks; /* number of 512B blocks allocated */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last modification */ time_t st_ctime; /* time of last status change */ }; ``` 不要害怕,只要記住以下屬性: + 大小,這正好是它所說的。 + 上次訪問的時間,當你查看文件時更新。 + 上次修改的時間,當你更改文件時更新。 現在你將學習如何打印當前目錄,目錄中的文件,復制和移動文件。 ## 這樣做 ``` 1: pwd 2: ls 3: ls -a 4: ls -al 5: ls -altr 6: cp -v .bash_history{,1} 7: cp -v .bash_history1 .bash_history2 8: mv -v .bash_history1 .bash_history2 9: rm -v .bash_history2 10: touch .bashrc 11: ls -al 12: ls .* ``` ## 你應該看到什么 ``` Hello, user1! user1@vm1:~$ pwd /home/user1 user1@vm1:~$ ls user1@vm1:~$ ls -a . .. .bash_history .bash_history1 .bash_logout .bashrc .lesshst .profile .profile.bak .profile.bak1 user1@vm1:~$ ls -al total 40 drwxr-xr-x 2 user1 user1 4096 Jun 7 13:30 . drwxr-xr-x 3 root root 4096 Jun 6 21:49 .. -rw------- 1 user1 user1 853 Jun 7 15:03 .bash_history -rw------- 1 user1 user1 308 Jun 7 13:14 .bash_history1 -rw-r--r-- 1 user1 user1 220 Jun 6 21:48 .bash_logout -rw-r--r-- 1 user1 user1 3184 Jun 6 21:48 .bashrc -rw------- 1 user1 user1 45 Jun 7 13:31 .lesshst -rw-r--r-- 1 user1 user1 697 Jun 7 12:25 .profile -rw-r--r-- 1 user1 user1 741 Jun 7 12:19 .profile.bak -rw-r--r-- 1 user1 user1 741 Jun 7 13:12 .profile.bak1 user1@vm1:~$ ls -altr total 40 -rw-r--r-- 1 user1 user1 3184 Jun 6 21:48 .bashrc -rw-r--r-- 1 user1 user1 220 Jun 6 21:48 .bash_logout drwxr-xr-x 3 root root 4096 Jun 6 21:49 .. -rw-r--r-- 1 user1 user1 741 Jun 7 12:19 .profile.bak -rw-r--r-- 1 user1 user1 697 Jun 7 12:25 .profile -rw-r--r-- 1 user1 user1 741 Jun 7 13:12 .profile.bak1 -rw------- 1 user1 user1 308 Jun 7 13:14 .bash_history1 drwxr-xr-x 2 user1 user1 4096 Jun 7 13:30 . -rw------- 1 user1 user1 45 Jun 7 13:31 .lesshst -rw------- 1 user1 user1 853 Jun 7 15:03 .bash_history user1@vm1:~$ cp -v .bash_history{,1} `.bash_history' -> `.bash_history1' user1@vm1:~$ cp -v .bash_history1 .bash_history2 `.bash_history1' -> `.bash_history2' user1@vm1:~$ mv -v .bash_history1 .bash_history2 `.bash_history1' -> `.bash_history2' user1@vm1:~$ rm -v .bash_history2 removed `.bash_history2' user1@vm1:~$ touch .bashrc user1@vm1:~$ ls -al total 36 drwxr-xr-x 2 user1 user1 4096 Jun 14 12:23 . drwxr-xr-x 3 root root 4096 Jun 6 21:49 .. -rw------- 1 user1 user1 853 Jun 7 15:03 .bash_history -rw-r--r-- 1 user1 user1 220 Jun 6 21:48 .bash_logout -rw-r--r-- 1 user1 user1 3184 Jun 14 12:24 .bashrc -rw------- 1 user1 user1 45 Jun 7 13:31 .lesshst -rw-r--r-- 1 user1 user1 697 Jun 7 12:25 .profile -rw-r--r-- 1 user1 user1 741 Jun 7 12:19 .profile.bak -rw-r--r-- 1 user1 user1 741 Jun 7 13:12 .profile.bak1 user1@vm1:~$ user1@vm1:~$ ls .* .bash_history .bash_logout .bashrc .lesshst .profile .profile.bak .profile.bak1 .: ls.out ..: user1 ``` ## 解釋 1. 打印你當前的工作目錄,這是你的主目錄。請注意它為何不同于`user1@vm1:~`中的`~`,這也表示,你在你的`home`目錄中。這是因為`~`是你的主目錄的縮寫。 2. 這里沒有任何東西,因為你的主目錄中只有隱藏的文件。記住,隱藏的文件是以點開頭的名稱。 3. 打印主目錄中的所有文件,因為`-a`參數讓`ls`顯示所有文件,包括隱藏文件。 4. 以長格式打印主目錄中的所有文件:權限,所有者,組,大小,時間戳(通常是修改時間)和文件名。 5. 注意文件如何按日期安排,最新的文件是最后一個。`-t`告訴`ls`按時間排序,`-r`告訴`ls`反轉排序。 6. 將`.bash_history`復制到`.bash_history1`。這似乎對你來說很神秘,但解釋真的很簡單。Bash 有一個稱為花括號擴展的功能,它有一組規則,定義了如何 處理像`{1,2,3}`之類的結構。在我們的例子中,`.bash_history{,1}` 擴展為兩個參數,即`.bash_history`和`.bash_history1`。Bash 僅僅接受花括號前的一個參數,在我們的例子中是`.bash_history`,并向參數添加花括號里的所有東西,以逗號分隔,并以此作為參數。第一個添加只是變成`.bash_history`,因為花括號中的第一個參數是空的,沒有第一個參數。接下來,Bash 添加了`1`,因為這是第二個參數,就是這樣。擴展后傳遞給`cp`的 結果參數為`-v .bash_history1 .bash_history2`。 7. 這可能對你來說很明顯。將最近創建的`.bash_history1`復制到`.bash_history2`。 8. 向`.bash_history1`移動到`.bash_history2`。請注意,它會覆蓋目標文件而不詢問,所以不再有`.bash_history2`,沒有了! 9. 將`.bashrc`時間戳更新為當前日期和時間。這意味著`.bashrc`的所有時間屬性,`st_atime`,`st_mtime`和`st_ctime`都設置為當前日期和時間。你可以通過輸入`stat .bashrc`來確定它。 0. 刪除`.bash_history2`。這里沒有警告,請小心。另外,總是用`-v`選項。 1. 再次以長格式打印所有文件。請注意`.bashrc`的時間戳更改。 2. 在你的主目錄中以短格式打印文件。請注意,你不僅可以列出`/home/user1`目錄,還可以列出`/home`目錄本身。不要和任何命令一起使用這個結構,特別是 `rm`,永遠不要!或許,你會意外地通過刪除錯誤的文件或更改權限,來使系統崩潰。 ## 附加題 玩轉 bash 花括號擴展。從`echo test{1,2,foo,bar}`開始。嘗試使用花括號鍵入幾個單獨的參數。 使用 Google 搜索 bash 花括號擴展,從搜索結果中打開“Bash 參考手冊”,并閱讀相應的部分。 嘗試弄清楚`ls .*`如何和為什么工作。 對自己說10次:“我會一直使用 verbose 選項。verbose 選項通常用作`-v`參數”。 對自己說10次:“我會永遠用`ls`檢查任何危險的命令”。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看