99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

不用mv命令的情況下怎么移動文件-創新互聯

這篇文章主要介紹“不用mv命令的情況下怎么移動文件”,在日常操作中,相信很多人在不用mv命令的情況下怎么移動文件問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”不用mv命令的情況下怎么移動文件”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

成都創新互聯公司是專業的卓尼網站建設公司,卓尼接單;提供成都做網站、網站設計,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行卓尼網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!

在遠離 mv 之前,先看看這個命令的默認結果。首先,創建一個目錄并生成一些權限為 777 的文件:不起眼的 mv  命令是在你見過的每個 POSIX 系統中都能找到的有用工具之一。它的作用是明確定義的,并且做得很好:將文件從文件系統中的一個位置移動到另一個位置。但是  Linux 非常靈活,還有其他移動文件的辦法。使用不同的工具可以完美匹配一些特殊用例,這算一個小優勢。

$ mkdir example
$ touch example/{foo,bar,baz}
$ for i in example/*; do ls /bin > "${i}"; done
$ chmod 777 example/*

你可能不會這么認為,但是文件在一個文件系統中作為條目存在,稱為索引節點(通常稱為 inode),你可以使用 ls 命令及其 --inode 選項查看一個文件占用的 inode:

$ ls --inode example/foo
7476868 example/foo

作為測試,將文件從示例目錄移動到當前目錄,然后查看文件的屬性:

$ mv example/foo .
$ ls -l -G -g --inode
7476868 -rwxrwxrwx. 1 29545 Aug  2 07:28 foo

如你所見,原始文件及權限已經被“移動”,但它的 inode 沒有變化。

這就是 mv 工具用來移動的方式:保持 inode 不變(除非文件被移動到不同的文件系統),并保留其所有權和權限。

其他工具提供了不同的選項。

復制和刪除

在某些系統上,移動操作是真的在做移動:比特從文件系統中的某個位置刪除并重新分配給另一個位置。這種行為在很大程度上已經失寵?,F在,移動操作要么是屬性重新分配(inode 現在指向文件組織中的不同位置),要么是復制和刪除操作的組合。這種設計的哲學意圖是確保在移動失敗時,文件不會碎片化。

與 mv 不同,cp 命令會在文件系統中創建一個全新的數據對象,它有一個新的 inode 位置,并取決于 umask。你可以使用 cp 和 rm(如果有的話,或者 trash —— LCTT 譯注:它是一個命令行回收站工具)命令來模仿 mv 命令。

$ cp example/foo .
$ ls -l -G -g --inode
7476869 -rwxrwxr-x. 29545 Aug  2 11:58 foo
$ trash example/foo

示例中的新 foo 文件獲得了 755 權限,因為此處的 umask 明確排除了寫入權限。

$ umask
0002

有關 umask 的更多信息,閱讀 Alex Juarez 這篇關于文件權限的文章。

查看和刪除

與復制和刪除類似,使用 cat(或 tac)命令在創建“移動”文件時分配不同的權限。假設當前目錄中是一個沒有 foo 的新測試環境:

$ cat example/foo > foo
$ ls -l -G -g --inode
7476869 -rw-rw-r--. 29545 Aug 8 12:21 foo
$ trash example/foo

這次,創建了一個沒有事先設置權限的新文件,所以文件最終權限完全取決于 umask 設置,它不會阻止用戶和組的權限位(無論 umask 是什么,都不會為新文件授予可執行權限),但它會阻止其他人的寫入(值為 2)。所以結果是一個權限是 664 的文件。

Rsync

rsync 命令是一個強大的多功能工具,用于在主機和文件系統位置之間發送文件。此命令有許多可用選項,包括使其目標鏡像成為源。

你可以使用帶有 --remove-source-files 選項的 rsync 復制,然后刪除文件,并可以帶上你選擇執行同步的任何其他選項(常見的通用選項是 --archive):

$ rsync --archive --remove-source-files example/foo .
$ ls example
bar  baz
$ ls -lGgi
7476870 -rwxrwxrwx. 1 seth users 29545 Aug 8 12:23 foo

在這里,你可以看到保留了文件權限和所有權,只是更新了時間戳,并刪除了源文件。

警告:不要將此選項與 --delete 混淆,后者會從目標目錄中刪除(源目錄中不存在的)文件。誤用 --delete 會清除很多數據,建議你不要使用此選項,除非是在測試環境中。

你可以覆蓋其中一些默認值,更改權限和修改設置:

$ rsync --chmod=666 --times \
    --remove-source-files example/foo .
$ ls example
bar  baz
$ ls -lGgi
7476871 -rw-rw-r--. 1 seth users 29545 Aug 8 12:55 foo

這里,目標的 umask 會生效,因此 --chmod=666 選項會產生一個權限為 644 的文件。

好處不僅僅是權限,與簡單的 mv 命令相比,rsync 命令有很多有用的選項(其中最重要的是 --exclude 選項,這樣你可以在一個大型移動操作中排除某些項目),這使它成為一個更強大的工具。例如,要在移動文件集合時排除所有備份文件:

$ rsync --chmod=666 --times \
    --exclude '*~' \
    --remove-source-files example/foo .

使用 install 設置權限

install 命令是一個專門面向開發人員的復制命令,主要是作為軟件編譯安裝例程的一部分調用。它并不為用戶所知(我經常想知道為什么它有這么一個直觀的名字,而剩下的包管理器卻只能使用縮寫和昵稱),但是 install 實際上是一種將文件放在你想要地方的有用方法。

install 命令有很多選項,包括 --backup 和 --compare 命令(以避免更新文件的新副本)。

與 cp 和 cat 命令不同,但與 mv 完全相同,install 命令可以在復制文件的同時而保留其時間戳:

$ install --preserve-timestamp example/foo .
$ ls -l -G -g --inode
7476869 -rwxr-xr-x. 1 29545 Aug  2 07:28 foo
$ trash example/foo

在這里,文件被復制到一個新的 inode,但它的 mtime(修改時間)沒有改變。但權限被設置為 install 的默認值 755。

你可以使用 install 來設置文件的權限,所有者和組:

$ install --preserve-timestamp \
    --owner=skenlon \
    --group=dialout \
    --mode=666 example/foo .
$ ls -li
7476869 -rw-rw-rw-. 1 skenlon dialout 29545 Aug  2 07:28 foo
$ trash example/foo

移動、復制和刪除

文件包含數據,而真正重要的文件包含你的數據。學會聰明地管理它們是很重要的,現在你有了確保以你想要的方式來處理數據的工具包。

到此,關于“不用mv命令的情況下怎么移動文件”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯-成都網站建設公司網站,小編會繼續努力為大家帶來更多實用的文章!

本文名稱:不用mv命令的情況下怎么移動文件-創新互聯
網站網址:http://www.yijiale78.com/article40/cdpdho.html

成都網站建設公司_創新互聯,為您提供定制網站品牌網站設計、外貿網站建設、手機網站建設響應式網站、域名注冊

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

營銷型網站建設