回答
我不認爲有一種方法可以保留現有的權限,每本說明從copy task:
的Unix注:當文件被複制文件權限不保留;他們最終會使用默認的UMASK權限。這是由於缺乏在當前Java運行時中查詢或設置文件權限的手段而造成的。如果您需要保留權限複製功能,請改爲使用
<exec executable="cp" ... >
。
但是,tar task可以採取一個或多個tarfileset
元素。可以使用filemode
和/或dirmode
屬性來定義tarfileset
以指定unix權限。如果指定多個包含僅匹配那些文件以獲取每組必需的權限,則該組中的文件將包含在這些權限中。
這種權限的缺乏使得ant tar任務幾乎對我無用。有沒有辦法做到這一點不與EXEC任務執行操作系統焦油
<exec executable="tar" output="/dev/null" os="Linux">
<arg value="--exclude-from=files_to_exclude.txt"/>
<arg value="-cvz"/>
<arg value="--file=${file.tar}"/>
<arg value="."/>
</exec>
有將近人類已知的所有操作系統的GNU tar二進制文件。將其中一個放入您的版本控制系統並根據您的操作系統使用它。是的,Ant每次運行時都需要分離一個進程。
使用tarfileset爲我們的項目工作。下面是萬一有人需要它的工作示例:
<tar destfile="${dist}/${module.name}-${version}.tar">
<tarfileset dir="${package.dir}" filemode="550" includesfile="${home.dir}/includelist.txt">
<include name="*.sh"/>
</tarfileset>
</tar>
在這個例子中,includelist.txt用來告訴哪些文件在tar文件中包含。所有帶* .sh擴展名的文件都具有用戶和組的讀取和執行權限(550)。
希望這可以幫助別人。
讓我猜:ivy + git存儲庫?因爲這就是我引起這個問題的原因。 – bassim 2014-10-12 12:36:00
這應該是答案!這是做到這一點的正確方法 – 2016-03-03 19:28:05
- 1. 如何在使用tar時保留文件所有權
- 2. 即使任務在其他平臺上使用,Ant的tar任務是否可以設置Linux文件權限?
- 3. ANT - 如何複製一組保留Linux權限的文件
- 4. 使用SVN保留文件權限
- 5. 如何複製到HDFS文件並仍保留權限?
- 6. 如何在使用FileUtils.copyDirectory時保留文件權限?
- 7. 如何使用`send_file()`保留文件的權限?
- 8. Perl |存檔:: Tar |文件提取後訪問被拒絕|保留權限
- 9. 如何從Cygwin使用cp.exe並保留權限
- 10. 複製文件夾和保留權限
- 11. 在.NET中保留文件權限
- 12. 保留原始文件名在Groovy Ant任務
- 13. ant tar任務:啓用「tar追加」的過程
- 14. Unix untar和保留文件權限
- 15. Linux文件權限和Java問題(權限保留)
- 16. 複製Sharepoint文件夾並保留權限
- 17. gtk +保存文件,同時保留linux中的文件權限
- 18. 如何在提取tar文件時檢測文件權限?
- 19. 複製shell腳本並保留權限
- 20. 如何使用Node.JS訪問不同用戶的文件並在Linux中保留權限限制?
- 21. 使用Python的tarfile創建tarball時保留文件權限
- 22. 使用Maven資源保留文件權限:testResources
- 23. 如何在網站部署期間保留文件夾權限?
- 24. 如何在git中保留文件權限?
- 25. 如何在git中保留DIRECTORY文件模式或權限?
- 26. 保留SQLServer的權限
- 27. 如何使用Log4J保留現有的日誌文件權限DailyRollingFileAppender
- 28. tar文件保留完整路徑。如何阻止它?
- 29. Git Pull保留組權限
- 30. 如何複製文件並保留所有權?
這是爲什麼downvoted?這個問題的完美解決方案 - upvoting – purecharger 2010-11-17 18:09:37
這很可能是因爲回答者沒有讀到這個問題而被低估:「當然可以使用exec任務完成」 – 2011-03-30 21:11:19
ant tar完全沒用。我明白爲什麼(Java不能讀取文件權限或一些垃圾),但這並不使它有用,因爲我想tar來重寫所有權限。這應該是正確的答案。 – Chris 2011-05-23 17:15:54