Board logo

主題: [問題]用Shell script自動建立相同屬性的路徑資料夾 [打印本頁]

發表人: saltire    時間: 2016-3-10 03:17 PM     主題: [問題]用Shell script自動建立相同屬性的路徑資料夾

請教一下
剛接觸Linux, 我想用Shell script做出以下功能
--
假設資料夾的PATH=/usr/lib64/samba
假設/usr的屬性是777
假設/usr/lib64的屬性是755
假設/usr/lib64/samba的屬性是705
然後我想建立出/root/backup/usr/lib64/samba的路徑資料夾
其中
/root/backup/usr的屬性是777 (裡面只有lib64資料夾)
/root/backup/usr/lib64的屬性是755 (裡面只有samba資料夾)
/root/backup/usr/lib64/samba的屬性是705 (裡面沒有任何檔案和資料夾)
也就是說跟原始對應的資料夾屬性是相同的
而且是只能建立出資料夾 不能把原始對應的資料夾裡的檔案也一起複製過去
--
不知道版上有沒有人可以教一下這樣的Shell script要怎麼寫
謝謝
發表人: watchme    時間: 2016-3-14 06:45 PM

rsync -o -r --include='*/' --exclude='*' SRC DST

-o 可以保留 Owner,其他屬性可以參考 rsync --help
發表人: saltire    時間: 2016-3-15 01:10 PM


引用:
watchme寫到:
rsync -o -r --include='*/' --exclude='*' SRC DST

-o 可以保留 Owner,其他屬性可以參考 rsync --help

這樣下指令的話 會自動把其他不相關的資料夾也一起複製
我只需要自動建立出/usr/lib64/samba/ 這樣的架構
發表人: watchme    時間: 2016-3-17 07:07 AM

--include "*/" 包含資料夾
--exclude "*" 排除所有檔案

我用 debian 跑過,是只有資料夾過去而已,再試看看
發表人: ianroo    時間: 2016-4-22 11:27 PM

也可以試試用tar 打包
tar czvpf filename.tar.gz /usr/lib64/samba

解壓縮時用
sudo tar xzvpf filename.tar.gz --same-owner

[更新]
上述是包含檔案的一種備份方式
抱歉沒看清楚不需要複製檔案,那我就沒什麼好辦法提供了
如果可以接受連檔案一起複製,再將檔案刪除的話
sudo rm -f $(find /root/usr/lib64/samba -type f)

[ianroo 在  2016-4-22 11:32 PM 作了最後編輯]
發表人: pcca    時間: 2016-11-16 09:31 AM

tar 打包過去, 再 find --type f 刪除所有檔案

參考這個吧! 我是沒去測試:
http://www.unixlore.net/articles ... ies-with-rsync.html




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0