AIX 上如何將檔案從一個 FS 複製到另一個 FS?

AIX 上如何將檔案從一個 FS 複製到另一個 FS?

我們有一個檔案系統:/foo

我們得到了另一個檔案系統:/bar

問:如何將 /foo 中的所有檔案複製到 /bar ?

我們沒有空間來壓縮它們,只能複製它們。但檔案系統中可能存在符號連結、硬連結。所以需要保存這些以及所有者、權限、結構、隱藏檔案!什麼是最好的方法?

額外:帶有奇怪字元的文件或區塊/字元文件

更新:我們可以使用 gzip 嗎?如果需要透過網路複製,壓縮將非常有用。

答案1

銳的評論差不多就夠了;這應該複製所有內容,包括隱藏文件:

cd /foo; tar cpf - . | (cd /bar; tar xpvf -)

(運行為root)。

如果要壓縮兩個tar進程之間複製的數據,可以在管道中新增壓縮器和解壓縮器:

cd /foo; tar cpf - . | gzip -9 | (cd /bar; gunzip | tar xpvf -)

如果您的版本tar支援它,您可以使用該z標誌:

cd /foo; tar cpzf - . | (cd /bar; tar xpzvf -)

(該-p標誌在某些平台上預設啟用root,我不確定 AIX 是否如此。)

答案2

Tar - 雖然非常通用 - 並不了解與 inode 數據相關的許多潛在問題。我強烈推薦一個變體

cd $src; find . | backup -if - | (cd $target; restore -xqf -)

幾年前,我將其編寫成一個“漂亮的腳本” - 但主要是我只是在命令列上使用上面的內容。

對於漂亮的腳本(從 2009 年開始!哎呀!)請參閱:http://www.rootvg.net/content/view/301/309/

相關內容